You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2016/08/11 16:44:58 UTC
[2/3] airavata git commit: removing registry core and cpi
dependencies from Airavata API Server
removing registry core and cpi dependencies from Airavata API Server
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/1eb3b415
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/1eb3b415
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/1eb3b415
Branch: refs/heads/develop
Commit: 1eb3b4155808dd1bfe2f08002cf49a7018e549af
Parents: 3a70c59
Author: scnakandala <su...@gmail.com>
Authored: Thu Aug 11 12:44:39 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Thu Aug 11 12:44:39 2016 -0400
----------------------------------------------------------------------
airavata-api/airavata-api-server/pom.xml | 7 +-
.../airavata/api/server/AiravataAPIServer.java | 16 +-
.../server/handler/AiravataServerHandler.java | 35 +-
.../DefaultAiravataSecurityManager.java | 29 +-
.../util/AiravataServerThreadPoolExecutor.java | 55 ---
.../api/server/util/AppCatalogInitUtil.java | 168 --------
.../api/server/util/ConnectionPool.java | 383 -------------------
.../server/util/CredentialStoreInitUtil.java | 156 --------
.../api/server/util/DataModelUtils.java | 56 ---
.../api/server/util/DatabaseCreator.java | 353 -----------------
.../server/util/ExperimentCatalogInitUtil.java | 203 ----------
.../airavata/api/server/util/JdbcStorage.java | 176 ---------
.../api/server/util/OrchestratorInitUtil.java | 25 --
.../api/server/util/ReplicaCatalogInitUtil.java | 160 --------
.../server/util/WorkflowCatalogInitUtil.java | 162 --------
.../api/server/handler/utils/AppCatInit.java | 320 ----------------
.../api/server/handler/utils/ExpCatInit.java | 330 ----------------
.../server/handler/utils/ReplicaCatInit.java | 315 ---------------
18 files changed, 26 insertions(+), 2923 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/pom.xml
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/pom.xml b/airavata-api/airavata-api-server/pom.xml
index 2108ce0..e5b549c 100644
--- a/airavata-api/airavata-api-server/pom.xml
+++ b/airavata-api/airavata-api-server/pom.xml
@@ -48,7 +48,7 @@
</dependency>
<dependency>
<groupId>org.apache.airavata</groupId>
- <artifactId>airavata-registry-core</artifactId>
+ <artifactId>airavata-credential-store-stubs</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
@@ -58,11 +58,6 @@
</dependency>
<dependency>
<groupId>org.apache.airavata</groupId>
- <artifactId>airavata-registry-cpi</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.airavata</groupId>
<artifactId>airavata-orchestrator-client</artifactId>
<version>${project.version}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/AiravataAPIServer.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/AiravataAPIServer.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/AiravataAPIServer.java
index 5290e83..97a9761 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/AiravataAPIServer.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/AiravataAPIServer.java
@@ -64,17 +64,6 @@ public class AiravataAPIServer implements IServer{
public void startAiravataServer(Airavata.Processor<Airavata.Iface> airavataAPIServer) throws AiravataSystemException {
try {
- // creating experiment catalog db
- ExperimentCatalogInitUtil.initializeDB();
- // creating app catalog db
- AppCatalogInitUtil.initializeDB();
- // creating workflow catalog db
- WorkflowCatalogInitUtil.initializeDB();
- // creating credential store db
- CredentialStoreInitUtil.initializeDB();
- // creating replica catalog db
- ReplicaCatalogInitUtil.initializeDB();
-
final String serverHost = ServerSettings.getSetting(Constants.API_SERVER_HOST, null);
if (!ServerSettings.isTLSEnabled()) {
final int serverPort = Integer.parseInt(ServerSettings.getSetting(Constants.API_SERVER_PORT, "8930"));
@@ -106,7 +95,6 @@ public class AiravataAPIServer implements IServer{
new Thread() {
public void run() {
server.serve();
- ExperimentCatalogInitUtil.stopDerbyInServerMode();
setStatus(ServerStatus.STOPPED);
logger.info("Airavata API Server Stopped.");
}
@@ -142,7 +130,6 @@ public class AiravataAPIServer implements IServer{
new Thread() {
public void run() {
TLSServer.serve();
- ExperimentCatalogInitUtil.stopDerbyInServerMode();
setStatus(ServerStatus.STOPPED);
logger.info("Airavata API Server over TLS Stopped.");
}
@@ -172,8 +159,7 @@ public class AiravataAPIServer implements IServer{
} catch (TTransportException e) {
logger.error(e.getMessage());
setStatus(ServerStatus.FAILED);
- ExperimentCatalogInitUtil.stopDerbyInServerMode();
- logger.error("Failed to start Gfac server ...");
+ logger.error("Failed to start API server ...");
throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
} catch (ApplicationSettingsException e) {
logger.error(e.getMessage(), e);
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 68ffa97..208cd1b 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -81,8 +81,6 @@ import org.apache.airavata.orchestrator.cpi.OrchestratorService.Client;
import org.apache.airavata.registry.api.RegistryService;
import org.apache.airavata.registry.api.client.RegistryServiceClientFactory;
import org.apache.airavata.registry.api.exception.RegistryServiceException;
-import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
-import org.apache.airavata.registry.cpi.*;
import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -913,7 +911,7 @@ public class AiravataServerHandler implements Airavata.Iface {
if(!(experimentModel.getExperimentStatus().getState() == ExperimentState.CREATED)){
logger.error("Error while deleting the experiment");
- throw new ExperimentCatalogException("Experiment is not in CREATED state. Hence cannot deleted. ID:"+ experimentId);
+ throw new RegistryServiceException("Experiment is not in CREATED state. Hence cannot deleted. ID:"+ experimentId);
}
return regClient.deleteExperiment(experimentId);
} catch (Exception e) {
@@ -2203,17 +2201,6 @@ public class AiravataServerHandler implements Airavata.Iface {
}
}
- private String addJobSubmissionInterface(ComputeResource computeResource,
- String computeResourceId, String jobSubmissionInterfaceId,
- JobSubmissionProtocol protocolType, int priorityOrder)
- throws AppCatalogException {
- JobSubmissionInterface jobSubmissionInterface = new JobSubmissionInterface();
- jobSubmissionInterface.setJobSubmissionInterfaceId(jobSubmissionInterfaceId);
- jobSubmissionInterface.setPriorityOrder(priorityOrder);
- jobSubmissionInterface.setJobSubmissionProtocol(protocolType);
- return computeResource.addJobSubmissionProtocol(computeResourceId,jobSubmissionInterface);
- }
-
/**
* Add a SSH Job Submission details to a compute resource
* App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
@@ -2480,16 +2467,6 @@ public class AiravataServerHandler implements Airavata.Iface {
}
}
- private String addDataMovementInterface(ComputeResource computeResource,
- String computeResourceId, DMType dmType, String dataMovementInterfaceId,
- DataMovementProtocol protocolType, int priorityOrder)
- throws AppCatalogException {
- DataMovementInterface dataMovementInterface = new DataMovementInterface();
- dataMovementInterface.setDataMovementInterfaceId(dataMovementInterfaceId);
- dataMovementInterface.setPriorityOrder(priorityOrder);
- dataMovementInterface.setDataMovementProtocol(protocolType);
- return computeResource.addDataMovementProtocol(computeResourceId, dmType, dataMovementInterface);
- }
/**
* Add a SCP data moevement details to a compute resource
@@ -3554,11 +3531,10 @@ public class AiravataServerHandler implements Airavata.Iface {
}
}
- private void initializeResourceWithGrouper(String resourceId, ResourceType resourceType) throws RegistryException, GroupManagerException {
- ExperimentCatalog experimentCatalog = RegistryFactory.getDefaultExpCatalog();
+ private void initializeResourceWithGrouper(String resourceId, ResourceType resourceType) throws RegistryServiceException, GroupManagerException, TException, ApplicationSettingsException {
GroupManagerCPI groupManager = GroupManagerFactory.getGroupManager();
if(resourceType.equals(ResourceType.PROJECT)){
- Project project = (Project) experimentCatalog.get(ExperimentCatalogModelType.PROJECT, resourceId);
+ Project project = (Project) getRegistryServiceClient().getProject(resourceId);
Resource projectResource = new Resource(project.getProjectID(), org.apache.airavata.grouper.resource.ResourceType.PROJECT);
projectResource.setName(project.getName());
@@ -3567,7 +3543,7 @@ public class AiravataServerHandler implements Airavata.Iface {
groupManager.createResource(projectResource);
}else if(resourceType.equals(ResourceType.EXPERIMENT)){
- ExperimentModel experiment = (ExperimentModel) experimentCatalog.get(ExperimentCatalogModelType.EXPERIMENT, resourceId);
+ ExperimentModel experiment = getRegistryServiceClient().getExperiment(resourceId);
if(!isResourceExistsInGrouper(experiment.getProjectId(), ResourceType.PROJECT)){
initializeResourceWithGrouper(experiment.getProjectId(), ResourceType.PROJECT);
}
@@ -3595,7 +3571,8 @@ public class AiravataServerHandler implements Airavata.Iface {
}
- private boolean hasPermission(String userId, String resourceId, ResourceType resourceType, ResourcePermissionType permissionType) throws GroupManagerException, RegistryException {
+ private boolean hasPermission(String userId, String resourceId, ResourceType resourceType, ResourcePermissionType permissionType)
+ throws GroupManagerException, TException, ApplicationSettingsException {
if(!isResourceExistsInGrouper(resourceId, resourceType)){
initializeResourceWithGrouper(resourceId, resourceType);
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/security/DefaultAiravataSecurityManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/security/DefaultAiravataSecurityManager.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/security/DefaultAiravataSecurityManager.java
index 90039f4..3dbab86 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/security/DefaultAiravataSecurityManager.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/security/DefaultAiravataSecurityManager.java
@@ -33,9 +33,9 @@ import org.apache.airavata.credential.store.datamodel.PasswordCredential;
import org.apache.airavata.credential.store.exception.CredentialStoreException;
import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
import org.apache.airavata.model.security.AuthzToken;
-import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
-import org.apache.airavata.registry.cpi.AppCatalog;
-import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.apache.airavata.registry.api.RegistryService;
+import org.apache.airavata.registry.api.client.RegistryServiceClientFactory;
+import org.apache.airavata.registry.api.exception.RegistryServiceException;
import org.apache.airavata.security.AiravataSecurityException;
import org.apache.airavata.security.util.TrustStoreManager;
import org.apache.axis2.AxisFault;
@@ -69,8 +69,7 @@ public class DefaultAiravataSecurityManager implements AiravataSecurityManager {
TrustStoreManager trustStoreManager = new TrustStoreManager();
trustStoreManager.initializeTrustStoreManager(ServerSettings.getTrustStorePath(),
ServerSettings.getTrustStorePassword());
- AppCatalog appCatalog = RegistryFactory.getAppCatalog();
- List<GatewayResourceProfile> gwProfiles = appCatalog.getGatewayProfile().getAllGatewayProfiles();
+ List<GatewayResourceProfile> gwProfiles = getRegistryServiceClient().getAllGatewayResourceProfiles();
//read the policy as a string
BufferedReader bufferedReader = new BufferedReader(new FileReader(new File(
ServerSettings.getAuthorizationPoliyName() + ".xml")));
@@ -117,7 +116,7 @@ public class DefaultAiravataSecurityManager implements AiravataSecurityManager {
} catch (IOException e) {
logger.error(e.getMessage(), e);
throw new AiravataSecurityException("Error in reading the authorization policy.");
- } catch (AppCatalogException e) {
+ } catch (RegistryServiceException e) {
logger.error(e.getMessage(), e);
throw new AiravataSecurityException("Error in reading the Gateway Profiles from App Catalog.");
} catch (TException e) {
@@ -153,8 +152,7 @@ public class DefaultAiravataSecurityManager implements AiravataSecurityManager {
"Obtaining it from the authorization server.");
CredentialStoreService.Client csClient = getCredentialStoreServiceClient();
- AppCatalog appCatalog = RegistryFactory.getAppCatalog();
- GatewayResourceProfile gwrp = appCatalog.getGatewayProfile().getGatewayProfile(gatewayId);
+ GatewayResourceProfile gwrp = getRegistryServiceClient().getGatewayResourceProfile(gatewayId);
PasswordCredential credential = csClient.getPasswordCredential(gwrp.getIdentityServerPwdCredToken(), gwrp.getGatewayID());
String username = credential.getLoginUserName();
if(gwrp.getIdentityServerTenant() != null && !gwrp.getIdentityServerTenant().isEmpty())
@@ -209,8 +207,7 @@ public class DefaultAiravataSecurityManager implements AiravataSecurityManager {
}
} else {
CredentialStoreService.Client csClient = getCredentialStoreServiceClient();
- AppCatalog appCatalog = RegistryFactory.getAppCatalog();
- GatewayResourceProfile gwrp = appCatalog.getGatewayProfile().getGatewayProfile(gatewayId);
+ GatewayResourceProfile gwrp = getRegistryServiceClient().getGatewayResourceProfile(gatewayId);
PasswordCredential credential = csClient.getPasswordCredential(gwrp.getIdentityServerPwdCredToken(), gwrp.getGatewayID());
String username = credential.getLoginUserName();
if(gwrp.getIdentityServerTenant() != null && !gwrp.getIdentityServerTenant().isEmpty())
@@ -245,7 +242,7 @@ public class DefaultAiravataSecurityManager implements AiravataSecurityManager {
} catch (ApplicationSettingsException e) {
logger.error(e.getMessage(), e);
throw new AiravataSecurityException("Error in reading OAuth server configuration.");
- } catch (AppCatalogException e) {
+ } catch (RegistryServiceException e) {
logger.error(e.getMessage(), e);
throw new AiravataSecurityException("Error in accessing AppCatalog.");
} catch (TException e) {
@@ -263,4 +260,14 @@ public class DefaultAiravataSecurityManager implements AiravataSecurityManager {
throw new TException("Unable to create credential store client...", e);
}
}
+
+ private RegistryService.Client getRegistryServiceClient() throws TException, ApplicationSettingsException {
+ final int serverPort = Integer.parseInt(ServerSettings.getRegistryServerPort());
+ final String serverHost = ServerSettings.getRegistryServerHost();
+ try {
+ return RegistryServiceClientFactory.createRegistryClient(serverHost, serverPort);
+ } catch (RegistryServiceException e) {
+ throw new TException("Unable to create registry client...", e);
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AiravataServerThreadPoolExecutor.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AiravataServerThreadPoolExecutor.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AiravataServerThreadPoolExecutor.java
deleted file mode 100644
index 9f04ddb..0000000
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AiravataServerThreadPoolExecutor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-*
-* 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.api.server.util;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.ServerSettings;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-public class AiravataServerThreadPoolExecutor {
- private final static Logger logger = LoggerFactory.getLogger(AiravataServerThreadPoolExecutor.class);
- public static final String AIRAVATA_SERVER_THREAD_POOL_SIZE = "airavata.server.thread.pool.size";
-
- private static ExecutorService threadPool;
-
- public static ExecutorService getCachedThreadPool() {
- if(threadPool ==null){
- threadPool = Executors.newCachedThreadPool();
- }
- return threadPool;
- }
-
- public static ExecutorService client() {
- if(threadPool ==null){
- try {
- threadPool = Executors.newFixedThreadPool(Integer.parseInt(ServerSettings.getSetting(AIRAVATA_SERVER_THREAD_POOL_SIZE)));
- } catch (ApplicationSettingsException e) {
- logger.error("Error reading " + AIRAVATA_SERVER_THREAD_POOL_SIZE+ " property");
- }
- }
- return threadPool;
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AppCatalogInitUtil.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AppCatalogInitUtil.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AppCatalogInitUtil.java
deleted file mode 100644
index 0be8922..0000000
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AppCatalogInitUtil.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
-*
-* 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.api.server.util;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.AiravataUtils;
-import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.registry.core.app.catalog.resources.GatewayProfileResource;
-import org.apache.derby.drda.NetworkServerControl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.URI;
-import java.sql.Connection;
-import java.sql.SQLException;
-
-public class AppCatalogInitUtil {
- public static final String COMPUTE_RESOURCE = "GATEWAY_PROFILE";
- private static final Logger logger = LoggerFactory.getLogger(AppCatalogInitUtil.class);
- public static final String APPCATALOG_JDBC_DRIVER = "appcatalog.jdbc.driver";
- public static final String APPCATALOG_JDBC_URL = "appcatalog.jdbc.url";
- public static final String APPCATALOG_JDBC_USER = "appcatalog.jdbc.user";
- public static final String APPCATALOG_JDBC_PASSWORD = "appcatalog.jdbc.password";
- public static final String START_DERBY_ENABLE = "start.derby.server.mode";
- public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
- private static NetworkServerControl server;
- private static JdbcStorage db;
- private static String jdbcURl;
- private static String jdbcDriver;
- private static String jdbcUser;
- private static String jdbcPassword;
-
-
- public static void initializeDB() {
-// System.setProperty("appcatalog.initialize.state", "0");
- try{
- jdbcDriver = ServerSettings.getSetting(APPCATALOG_JDBC_DRIVER);
- jdbcURl = ServerSettings.getSetting(APPCATALOG_JDBC_URL);
- jdbcUser = ServerSettings.getSetting(APPCATALOG_JDBC_USER);
- jdbcPassword = ServerSettings.getSetting(APPCATALOG_JDBC_PASSWORD);
- jdbcURl = jdbcURl + "?" + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
- } catch (ApplicationSettingsException e) {
- logger.error("Unable to read airavata server properties", e.getMessage());
- }
-
- if (getDBType(jdbcURl).equals("derby") && isDerbyStartEnabled()) {
- startDerbyInServerMode();
- }
- db = new JdbcStorage(10, 50, jdbcURl, jdbcDriver, true);
-
- Connection conn = null;
- try {
- conn = db.connect();
- if (!DatabaseCreator.isDatabaseStructureCreated(COMPUTE_RESOURCE, conn)) {
- DatabaseCreator.createRegistryDatabase("database_scripts/appcatalog", conn);
- logger.info("New Database created for App Catalog !!!");
- } else {
- logger.info("Database already created for App Catalog !!!");
- }
- GatewayProfileResource gatewayProfileResource = new GatewayProfileResource();
- if (!gatewayProfileResource.isExists(ServerSettings.getDefaultUserGateway())){
- gatewayProfileResource.setGatewayID(ServerSettings.getDefaultUserGateway());
- gatewayProfileResource.setCreatedTime(AiravataUtils.getCurrentTimestamp());
- gatewayProfileResource.save();
- }
- } catch (Exception e) {
- logger.error(e.getMessage(), e);
- throw new RuntimeException("Database failure", e);
- } finally {
- db.closeConnection(conn);
- try {
- if(conn != null){
- if (!conn.getAutoCommit()) {
- conn.commit();
- }
- conn.close();
- }
- } catch (SQLException e) {
- logger.error("Error while closing database connection...", e.getMessage(), e);
- }
- }
-// System.setProperty("appcatalog.initialize.state", "1");
- }
-
- public static String getDBType(String jdbcUrl){
- try{
- 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 = ServerSettings.getSetting(START_DERBY_ENABLE);
- if("true".equals(s)){
- return true;
- }
- } catch (ApplicationSettingsException e) {
- logger.error("Unable to read airavata server properties", e.getMessage(), e);
- return false;
- }
- return false;
- }
-
- public static void startDerbyInServerMode() {
- try {
- System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
- server = new NetworkServerControl(InetAddress.getByName("0.0.0.0"),
- getPort(jdbcURl),
- jdbcUser, jdbcPassword);
- java.io.PrintWriter consoleWriter = new java.io.PrintWriter(System.out, true);
- server.start(consoleWriter);
- } catch (IOException e) {
- logger.error("Unable to start Apache derby in the server mode! Check whether " +
- "specified port is available");
- } catch (Exception e) {
- logger.error("Unable to start Apache derby in the server mode! Check whether " +
- "specified port is available");
- }
- }
-
- public static void stopDerbyInServerMode() {
- System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "false");
- if (server!=null){
- try {
- server.shutdown();
- } catch (Exception e) {
- logger.error("Error when stopping the derby server : "+e.getLocalizedMessage());
- }
- }
- }
-
- public static int getPort(String jdbcURL){
- try{
- String cleanURI = jdbcURL.substring(5);
- URI uri = URI.create(cleanURI);
- return uri.getPort();
- } catch (Exception e) {
- logger.error(e.getMessage(), e);
- return -1;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/ConnectionPool.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/ConnectionPool.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/ConnectionPool.java
deleted file mode 100644
index 5715b9d..0000000
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/ConnectionPool.java
+++ /dev/null
@@ -1,383 +0,0 @@
-/*
- *
- * 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.api.server.util;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.sql.DataSource;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Stack;
-import java.util.concurrent.Semaphore;
-
-
-/**
- * A class for preallocating, recycling, and managing JDBC connections.
- */
-public class ConnectionPool {
- private static final Logger logger = LoggerFactory.getLogger(ConnectionPool.class);
-
- private long MAX_IDLE_TIME = 5 * 60 * 1000; // 5 minutes
-
- private String driver;
- private String url;
- private String username;
- private String password;
- private String jdbcUrl;
-
- private int maxConnections;
-
- private boolean autoCommit = true;
- private boolean waitIfBusy;
-
- private Semaphore needConnection = new Semaphore(0);
- private boolean stop;
-
- private Stack<Connection> availableConnections;
- private Stack<Connection> busyConnections;
-
- private HashMap<Connection, Long> lastAccessTimeRecord = new HashMap<Connection, Long>();
-
- private String urlType = "";
-
- private DataSource datasource;
-
- private int transactionIsolation = Connection.TRANSACTION_NONE;
-
- private Thread clenupThread;
- private Thread producerThread;
-
- public ConnectionPool(String driver, String url, String username, String password, int initialConnections,
- int maxConnections, boolean waitIfBusy) throws SQLException {
- this.driver = driver;
- this.url = url;
- this.username = username;
- this.password = password;
- this.urlType = "speratedURL";
- initialize(initialConnections, maxConnections, waitIfBusy);
- }
-
- public ConnectionPool(String driver, String jdbcUrl, int initialConnections, int maxConnections,
- boolean waitIfBusy, boolean autoCommit, int transactionIsolation) throws SQLException {
- this.driver = driver;
- this.jdbcUrl = jdbcUrl;
- this.urlType = "simpleURL";
- this.autoCommit = autoCommit;
- this.transactionIsolation = transactionIsolation;
- initialize(initialConnections, maxConnections, waitIfBusy);
- }
-
- public ConnectionPool(String driver, String jdbcUrl, int initialConnections, int maxConnections, boolean waitIfBusy)
- throws SQLException {
- this.driver = driver;
- this.jdbcUrl = jdbcUrl;
- this.urlType = "simpleURL";
- initialize(initialConnections, maxConnections, waitIfBusy);
- }
-
- public ConnectionPool(DataSource dataSource, int initialConnections, int maxConnections, boolean waitIfBusy)
- throws SQLException {
- this.urlType = "dataSource";
- this.datasource = dataSource;
- initialize(initialConnections, maxConnections, waitIfBusy);
- }
-
- /**
- * Check if this connection pool is auto commit or not
- *
- * @return
- */
- public boolean isAutoCommit() {
- return this.autoCommit;
- }
-
- private void initialize(int initialConnections, int maxConnections, boolean waitIfBusy) throws SQLException {
- this.maxConnections = maxConnections;
- this.waitIfBusy = waitIfBusy;
-
- int sizeOfConnections = (initialConnections > maxConnections) ? maxConnections : initialConnections;
-
- availableConnections = new Stack<Connection>();
- busyConnections = new Stack<Connection>();
-
- for (int i = 0; i < sizeOfConnections; i++) {
- Connection con = makeNewConnection();
- setTimeStamp(con);
- availableConnections.push(con);
-
- }
-
- producerThread = new Thread(new FillUpThread());
- producerThread.start();
-
- clenupThread = new Thread(new CleanUpThread());
- clenupThread.start();
- }
-
- public synchronized Connection getConnection() throws SQLException {
- if (!availableConnections.isEmpty()) {
- Connection existingConnection = availableConnections.pop();
-
- // If connection on available list is closed (e.g.,
- // it timed out), then remove it from available list
- // and race for a connection again.
- if (existingConnection.isClosed()) {
- lastAccessTimeRecord.remove(existingConnection);
- // notifyAll for fairness
- notifyAll();
- } else {
- busyConnections.push(existingConnection);
- setTimeStamp(existingConnection);
- return existingConnection;
- }
- } else if (!waitIfBusy && busyConnections.size() >= maxConnections) {
- // You reached maxConnections limit and waitIfBusy flag is false.
- // Throw SQLException in such a case.
- throw new SQLException("Connection limit reached");
- } else {
-
- if (busyConnections.size() < maxConnections) {
- // available connection is empty, but total number of connection
- // doesn't reach maxConnection. Request for more connection
- needConnection.release();
- }
-
- try {
- // wait for free connection
- wait();
- } catch (InterruptedException ie) {
- }
- }
- // always race for connection forever
- return getConnection();
- }
-
- // This explicitly makes a new connection. Called in
- // the foreground when initializing the ConnectionPool,
- // and called in the background when running.
- private Connection makeNewConnection() throws SQLException {
- try {
- // Load database driver if not already loaded
- Class.forName(driver);
- Connection connection;
- // Establish network connection to database
- if (urlType.equals("speratedURL")) {
- connection = DriverManager.getConnection(url, username, password);
- } else if (urlType.equals("simpleURL")) {
- connection = DriverManager.getConnection(jdbcUrl);
- } else { // if(urlType.equals("dataSource")){
- connection = datasource.getConnection();
- }
- connection.setTransactionIsolation(this.transactionIsolation);
- connection.setAutoCommit(this.autoCommit);
- return connection;
- } catch (ClassNotFoundException cnfe) {
- // Simplify try/catch blocks of people using this by
- // throwing only one exception type.
- throw new SQLException("Can't find class for driver: " + driver);
- }
- }
-
- private synchronized void fillUpConnection(Connection conn) {
- setTimeStamp(conn);
- availableConnections.push(conn);
-
- // notify all since new connection is created
- notifyAll();
- }
-
- private void setTimeStamp(Connection connection) {
- lastAccessTimeRecord.put(connection, System.currentTimeMillis());
- }
-
- // The database connection cannot be left idle for too long, otherwise TCP
- // connection will be broken.
- /**
- * From http://forums.mysql.com/read.php?39,28450,57460#msg-57460 Okay, then it looks like wait_timeout on the
- * server is killing your connection (it is set to 8 hours of idle time by default). Either set that value higher on
- * your server, or configure your connection pool to not hold connections idle that long (I prefer the latter). Most
- * folks I know that run MySQL with a connection pool in high-load production environments only let connections sit
- * idle for a matter of minutes, since it only takes a few milliseconds to open a connection, and the longer one
- * sits idle the more chance it will go "bad" because of a network hiccup or the MySQL server being restarted.
- *
- * @throws java.sql.SQLException
- */
- private boolean isConnectionStale(Connection connection) {
- long currentTime = System.currentTimeMillis();
- long lastAccess = lastAccessTimeRecord.get(connection);
- if (currentTime - lastAccess > MAX_IDLE_TIME) {
- return true;
- } else
- return false;
- }
-
- private synchronized void closeStaleConnections() {
- // close idle connections
- Iterator<Connection> iter = availableConnections.iterator();
- while (iter.hasNext()) {
- Connection existingConnection = iter.next();
- if (isConnectionStale(existingConnection)) {
- try {
- existingConnection.close();
- iter.remove();
- } catch (SQLException sql) {
- logger.error(sql.getMessage(), sql);
- }
- }
- }
- // close busy connections that have been checked out for too long.
- // This should not happen since this means program has bug for not
- // releasing connections .
- iter = busyConnections.iterator();
- while (iter.hasNext()) {
- Connection busyConnection = iter.next();
- if (isConnectionStale(busyConnection)) {
- try {
- busyConnection.close();
- iter.remove();
- logger.warn("****Connection has checked out too long. Forced release. Check the program for calling release connection [free(Connection) method]");
- } catch (SQLException sql) {
- logger.error(sql.getMessage(), sql);
- }
- }
- }
- }
-
- public synchronized void free(Connection connection) {
- busyConnections.removeElement(connection);
- availableConnections.addElement(connection);
- // Wake up threads that are waiting for a connection
- notifyAll();
- }
-
- /**
- * Close all the connections. Use with caution: be sure no connections are in use before calling. Note that you are
- * not <I>required</I> to call this when done with a ConnectionPool, since connections are guaranteed to be closed
- * when garbage collected. But this method gives more control regarding when the connections are closed.
- */
- public synchronized void dispose() {
- logger.info("Connection Pool Shutting down");
-
- // stop clean up thread
- this.stop = true;
- this.clenupThread.interrupt();
-
- // stop producer up thread
- this.producerThread.interrupt();
-
- // close all connection
- closeConnections(availableConnections);
- availableConnections = new Stack<Connection>();
- closeConnections(busyConnections);
- busyConnections = new Stack<Connection>();
- lastAccessTimeRecord.clear();
-
- logger.info("All connection is closed");
-
- try {
- this.clenupThread.join();
- this.producerThread.join();
- } catch (Exception e) {
- logger.error("Cannot shutdown cleanup thread", e);
- }
-
- logger.info("Connection Pool Shutdown");
- }
-
- private void closeConnections(Stack<Connection> connections) {
- while (!connections.isEmpty()) {
- Connection connection = connections.pop();
- try {
- if (!connection.isClosed()) {
- connection.close();
- }
- } catch (SQLException sqle) {
- // Ignore errors; garbage collect anyhow
- logger.warn(sqle.getMessage());
- }
- }
- }
-
- public synchronized String toString() {
- String info = "ConnectionPool(" + url + "," + username + ")" + ", available=" + availableConnections.size()
- + ", busy=" + busyConnections.size() + ", max=" + maxConnections;
- return (info);
- }
-
- class CleanUpThread implements Runnable {
- public void run() {
- while (!stop) {
- try {
- Thread.sleep(MAX_IDLE_TIME);
- closeStaleConnections();
- } catch (InterruptedException e) {
- logger.info("Clean up thread is interrupted to close");
- }
- }
- }
- }
-
- class FillUpThread implements Runnable {
- public void run() {
- while (!stop) {
- try {
- // block until get
- needConnection.acquire();
-
- Connection conn = makeNewConnection();
- fillUpConnection(conn);
- } catch (SQLException e) {
- // cannot create connection (increase semaphore value back)
- needConnection.release();
- logger.error(e.getMessage(), e);
- } catch (InterruptedException e) {
- logger.info("Fill up thread is interrupted to close");
- break;
- }
- }
- }
- }
-
- public void shutdown() throws SQLException{
- for (Connection c : availableConnections) {
- try {
- c.close();
- } catch (SQLException e) {
- logger.error("Error while closing the connection", e);
- throw new SQLException("Error while closing the connection", e);
- }
- }
-
- for (Connection c : busyConnections) {
- try {
- c.close();
- } catch (SQLException e) {
- logger.error("Error while closing the connection", e);
- throw new SQLException("Error while closing the connection", e);
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/CredentialStoreInitUtil.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/CredentialStoreInitUtil.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/CredentialStoreInitUtil.java
deleted file mode 100644
index 20dd1aa..0000000
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/CredentialStoreInitUtil.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-*
-* 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.api.server.util;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.derby.drda.NetworkServerControl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.URI;
-import java.sql.Connection;
-import java.sql.SQLException;
-
-public class CredentialStoreInitUtil {
- private static final Logger logger = LoggerFactory.getLogger(CredentialStoreInitUtil.class);
- public static final String CREDENTIALS = "CREDENTIALS";
- public static final String START_DERBY_ENABLE = "start.derby.server.mode";
- public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
- private static NetworkServerControl server;
- private static JdbcStorage db;
- private static String jdbcURl;
- private static String jdbcDriver;
- private static String jdbcUser;
- private static String jdbcPassword;
-
-
- public static void initializeDB() {
-// System.setProperty("appcatalog.initialize.state", "0");
- try{
- jdbcDriver = ServerSettings.getCredentialStoreDBDriver();
- jdbcURl = ServerSettings.getCredentialStoreDBURL();
- jdbcUser = ServerSettings.getCredentialStoreDBUser();
- jdbcPassword = ServerSettings.getCredentialStoreDBPassword();
- jdbcURl = jdbcURl + "?" + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
- } catch (ApplicationSettingsException e) {
- logger.error("Unable to read airavata server properties", e.getMessage());
- }
-
- if (getDBType(jdbcURl).equals("derby") && isDerbyStartEnabled()) {
- startDerbyInServerMode();
- }
- db = new JdbcStorage(10, 50, jdbcURl, jdbcDriver, true);
-
- Connection conn = null;
- try {
- conn = db.connect();
- if (!DatabaseCreator.isDatabaseStructureCreated(CREDENTIALS, conn)) {
- DatabaseCreator.createRegistryDatabase("database_scripts/credstore", conn);
- logger.info("New Database created for Credential Store !!! ");
- } else {
- logger.info("Database already created for Credential Store !!!");
- }
- } catch (Exception e) {
- logger.error(e.getMessage(), e);
- throw new RuntimeException("Database failure", e);
- } finally {
- db.closeConnection(conn);
- try {
- if(conn != null){
- if (!conn.getAutoCommit()) {
- conn.commit();
- }
- conn.close();
- }
- } catch (SQLException e) {
- logger.error("Error while closing database connection...", e.getMessage(), e);
- }
- }
-// System.setProperty("appcatalog.initialize.state", "1");
- }
-
- public static String getDBType(String jdbcUrl){
- try{
- 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 = ServerSettings.getSetting(START_DERBY_ENABLE);
- if("true".equals(s)){
- return true;
- }
- } catch (ApplicationSettingsException e) {
- logger.error("Unable to read airavata server properties", e.getMessage(), e);
- return false;
- }
- return false;
- }
-
- public static void startDerbyInServerMode() {
- try {
- System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
- server = new NetworkServerControl(InetAddress.getByName("0.0.0.0"),
- getPort(jdbcURl),
- jdbcUser, jdbcPassword);
- java.io.PrintWriter consoleWriter = new java.io.PrintWriter(System.out, true);
- server.start(consoleWriter);
- } catch (IOException e) {
- logger.error("Unable to start Apache derby in the server mode! Check whether " +
- "specified port is available");
- } catch (Exception e) {
- logger.error("Unable to start Apache derby in the server mode! Check whether " +
- "specified port is available");
- }
- }
-
- public static void stopDerbyInServerMode() {
- System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "false");
- if (server!=null){
- try {
- server.shutdown();
- } catch (Exception e) {
- logger.error("Error when stopping the derby server : "+e.getLocalizedMessage());
- }
- }
- }
-
- public static int getPort(String jdbcURL){
- try{
- String cleanURI = jdbcURL.substring(5);
- URI uri = URI.create(cleanURI);
- return uri.getPort();
- } catch (Exception e) {
- logger.error(e.getMessage(), e);
- return -1;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java
deleted file mode 100644
index d3d410f..0000000
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- *
- * 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.api.server.util;
-
-import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
-import org.apache.airavata.registry.cpi.AppCatalogException;
-import org.apache.airavata.registry.cpi.ApplicationInterface;
-import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.model.util.ExecutionType;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-
-public class DataModelUtils {
- private static final Logger logger = LoggerFactory.getLogger(DataModelUtils.class);
- public static ExecutionType getExecutionType(ExperimentModel experiment) throws Exception{
- try {
- ApplicationInterface applicationInterface = RegistryFactory.getAppCatalog().getApplicationInterface();
- List<String> allApplicationInterfaceIds = applicationInterface.getAllApplicationInterfaceIds();
- String applicationId = experiment.getExecutionId();
- if (allApplicationInterfaceIds.contains(applicationId)){
- return ExecutionType.SINGLE_APP;
- } else {
- List<String> allWorkflows = RegistryFactory.getAppCatalog().getWorkflowCatalog().getAllWorkflows(ServerSettings.getDefaultUserGateway());
- if (allWorkflows.contains(applicationId)){
- return ExecutionType.WORKFLOW;
- }
- }
- } catch (AppCatalogException e) {
- logger.error("Error while retrieving execution type for experiment : " + experiment.getExperimentId(), e);
- throw new Exception("Error while retrieving execution type for experiment : " + experiment.getExperimentId(), e);
- }
- return ExecutionType.UNKNOWN;
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DatabaseCreator.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DatabaseCreator.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DatabaseCreator.java
deleted file mode 100644
index f52d5d8..0000000
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DatabaseCreator.java
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- *
- * 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.api.server.util;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.sql.*;
-import java.util.StringTokenizer;
-
-/**
- * This class creates the database tables required for airavata with default configuration this
- * class creates derby database in server mode. User can specify required database in appropriate
- * properties files.
- */
-public class DatabaseCreator {
- private final static Logger logger = LoggerFactory.getLogger(DatabaseCreator.class);
-
- public enum DatabaseType {
- derby("(?i).*derby.*"), mysql("(?i).*mysql.*"), other("");
-
- private String pattern;
-
- private DatabaseType(String matchingPattern) {
- this.pattern = matchingPattern;
- }
-
- public String getMatchingPattern() {
- return this.pattern;
- }
- }
-
- private static DatabaseType[] supportedDatabase = new DatabaseType[] { DatabaseType.derby, DatabaseType.mysql };
-
- private static Logger log = LoggerFactory.getLogger(DatabaseCreator.class);
- private static final String delimiter = ";";
-
- /**
- * Creates database
- *
- * @throws Exception
- */
- public static void createRegistryDatabase(String prefix, Connection conn) throws Exception {
- createDatabase(prefix, conn);
- }
-
-
-
- /**
- * Checks whether database tables are created by using select * on given table name
- *
- * @param tableName
- * Table which should be existed
- * @return <code>true</core> if checkSQL is success, else <code>false</code> .
- */
- public static boolean isDatabaseStructureCreated(String tableName, Connection conn) {
- try {
-
- log.debug("Running a query to test the database tables existence.");
-
- // check whether the tables are already created with a query
- Statement statement = null;
- try {
- statement = conn.createStatement();
- ResultSet rs = statement.executeQuery("select * from " + tableName);
- if (rs != null) {
- rs.close();
- }
- } finally {
- try {
- if (statement != null) {
- statement.close();
- }
- } catch (SQLException e) {
- return false;
- }
- }
- } catch (SQLException e) {
- return false;
- }
-
- return true;
- }
-
- /**
- * executes given sql
- *
- * @param sql
- * @throws Exception
- */
- private static void executeSQL(String sql, Connection conn) throws Exception {
- // Check and ignore empty statements
- if ("".equals(sql.trim())) {
- return;
- }
-
- Statement statement = null;
- try {
- log.debug("SQL : " + sql);
-
- boolean ret;
- int updateCount = 0, updateCountTotal = 0;
- statement = conn.createStatement();
- ret = statement.execute(sql);
- updateCount = statement.getUpdateCount();
- do {
- if (!ret) {
- if (updateCount != -1) {
- updateCountTotal += updateCount;
- }
- }
- ret = statement.getMoreResults();
- if (ret) {
- updateCount = statement.getUpdateCount();
- }
- } while (ret);
-
- log.debug(sql + " : " + updateCountTotal + " rows affected");
-
- SQLWarning warning = conn.getWarnings();
- while (warning != null) {
- log.info(warning + " sql warning");
- warning = warning.getNextWarning();
- }
- conn.clearWarnings();
- } catch (SQLException e) {
- if (e.getSQLState().equals("X0Y32")) {
- // eliminating the table already exception for the derby
- // database
- log.info("Table Already Exists", e);
- } else {
- throw new Exception("Error occurred while executing : " + sql, e);
- }
- } finally {
- if (statement != null) {
- try {
- statement.close();
- } catch (SQLException e) {
- log.error("Error occurred while closing result set.", e);
- }
- }
- }
- }
-
- /**
- * computes relatational database type using database name
- *
- * @return DatabaseType
- * @throws Exception
- *
- */
- public static DatabaseType getDatabaseType(Connection conn) throws Exception {
- try {
- if (conn != null && (!conn.isClosed())) {
- DatabaseMetaData metaData = conn.getMetaData();
- String databaseProductName = metaData.getDatabaseProductName();
- return checkType(databaseProductName);
- }
- } catch (SQLException e) {
- String msg = "Failed to create Airavata database." + e.getMessage();
- log.error(msg, e);
- throw new Exception(msg, e);
- }
- return DatabaseType.other;
- }
-
- /**
- * Overloaded method with String input
- *
- * @return DatabaseType
- * @throws Exception
- *
- */
- public static DatabaseType getDatabaseType(String dbUrl) throws Exception {
- return checkType(dbUrl);
- }
-
- private static DatabaseType checkType(String text) throws Exception {
- try {
- if (text != null) {
- for (DatabaseType type : supportedDatabase) {
- if (text.matches(type.getMatchingPattern()))
- return type;
- }
- }
- String msg = "Unsupported database: " + text
- + ". Database will not be created automatically by the Airavata. "
- + "Please create the database using appropriate database scripts for " + "the database.";
- throw new Exception(msg);
-
- } catch (SQLException e) {
- String msg = "Failed to create Airavatadatabase." + e.getMessage();
- log.error(msg, e);
- throw new Exception(msg, e);
- }
- }
-
- /**
- * Get scripts location which is prefix + "-" + databaseType + ".sql"
- *
- * @param prefix
- * @param databaseType
- * @return script location
- */
- private static String getScriptLocation(String prefix, DatabaseType databaseType) {
- String scriptName = prefix + "-" + databaseType + ".sql";
- log.debug("Loading database script from :" + scriptName);
- return scriptName;
- }
-
- private static void createDatabase(String prefix, Connection conn) throws Exception {
- Statement statement = null;
- try {
- conn.setAutoCommit(false);
- statement = conn.createStatement();
- executeSQLScript(getScriptLocation(prefix, DatabaseCreator.getDatabaseType(conn)), conn);
- conn.commit();
- log.debug("Tables are created successfully.");
- } catch (SQLException e) {
- String msg = "Failed to create database tables for Airavata resource store. " + e.getMessage();
- log.error(msg, e);
- conn.rollback();
- throw new Exception(msg, e);
- } finally {
- conn.setAutoCommit(true);
- try {
- if (statement != null) {
- statement.close();
- }
- } catch (SQLException e) {
- log.error("Failed to close statement.", e);
- }
- }
- }
-
- private static void executeSQLScript(String dbscriptName, Connection conn) throws Exception {
- StringBuffer sql = new StringBuffer();
- BufferedReader reader = null;
-
- try {
- InputStream is = DatabaseCreator.class.getClassLoader().getResourceAsStream(dbscriptName);
- if(is == null) {
- logger.info("Script file not found at " + dbscriptName + ". Uses default database script file");
- DatabaseType databaseType = DatabaseCreator.getDatabaseType(conn);
- if(databaseType.equals(DatabaseType.derby)){
- is = DatabaseCreator.class.getClassLoader().getResourceAsStream("experiment-derby.sql");
- }else if(databaseType.equals(DatabaseType.mysql)){
- is = DatabaseCreator.class.getClassLoader().getResourceAsStream("experiment-mysql.sql");
- }
- }
- reader = new BufferedReader(new InputStreamReader(is));
- String line;
- while ((line = reader.readLine()) != null) {
- line = line.trim();
- if (line.startsWith("//")) {
- continue;
- }
- if (line.startsWith("--")) {
- continue;
- }
- StringTokenizer st = new StringTokenizer(line);
- if (st.hasMoreTokens()) {
- String token = st.nextToken();
- if ("REM".equalsIgnoreCase(token)) {
- continue;
- }
- }
- sql.append(" ").append(line);
-
- // SQL defines "--" as a comment to EOL
- // and in Oracle it may contain a hint
- // so we cannot just remove it, instead we must end it
- if (line.indexOf("--") >= 0) {
- sql.append("\n");
- }
- if ((checkStringBufferEndsWith(sql, delimiter))) {
- executeSQL(sql.substring(0, sql.length() - delimiter.length()), conn);
- sql.replace(0, sql.length(), "");
- }
- }
- // Catch any statements not followed by ;
- if (sql.length() > 0) {
- executeSQL(sql.toString(), conn);
- }
- } catch (IOException e) {
- log.error("Error occurred while executing SQL script for creating Airavata database", e);
- throw new Exception("Error occurred while executing SQL script for creating Airavata database", e);
-
- } finally {
- if (reader != null) {
- reader.close();
- }
- }
- }
-
- /**
- * Checks that a string buffer ends up with a given string. It may sound trivial with the existing JDK API but the
- * various implementation among JDKs can make those methods extremely resource intensive and perform poorly due to
- * massive memory allocation and copying. See
- *
- * @param buffer
- * the buffer to perform the check on
- * @param suffix
- * the suffix
- * @return <code>true</code> if the character sequence represented by the argument is a suffix of the character
- * sequence represented by the StringBuffer object; <code>false</code> otherwise. Note that the result will
- * be <code>true</code> if the argument is the empty string.
- */
- public static boolean checkStringBufferEndsWith(StringBuffer buffer, String suffix) {
- if (suffix.length() > buffer.length()) {
- return false;
- }
- // this loop is done on purpose to avoid memory allocation performance
- // problems on various JDKs
- // StringBuffer.lastIndexOf() was introduced in jdk 1.4 and
- // implementation is ok though does allocation/copying
- // StringBuffer.toString().endsWith() does massive memory
- // allocation/copying on JDK 1.5
- // See http://issues.apache.org/bugzilla/show_bug.cgi?id=37169
- int endIndex = suffix.length() - 1;
- int bufferIndex = buffer.length() - 1;
- while (endIndex >= 0) {
- if (buffer.charAt(bufferIndex) != suffix.charAt(endIndex)) {
- return false;
- }
- bufferIndex--;
- endIndex--;
- }
- return true;
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/ExperimentCatalogInitUtil.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/ExperimentCatalogInitUtil.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/ExperimentCatalogInitUtil.java
deleted file mode 100644
index 5e68c40..0000000
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/ExperimentCatalogInitUtil.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
-*
-* 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.api.server.util;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.URI;
-import java.sql.Connection;
-import java.sql.SQLException;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
-import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
-import org.apache.airavata.registry.core.experiment.catalog.resources.GatewayResource;
-import org.apache.airavata.registry.core.experiment.catalog.resources.ProjectResource;
-import org.apache.airavata.registry.core.experiment.catalog.resources.UserResource;
-import org.apache.airavata.registry.core.experiment.catalog.resources.WorkerResource;
-import org.apache.derby.drda.NetworkServerControl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ExperimentCatalogInitUtil {
- public static final String CONFIGURATION_TABLE = "CONFIGURATION";
- private static final Logger logger = LoggerFactory.getLogger(ExperimentCatalogInitUtil.class);
- public static final String REGISTRY_JDBC_DRIVER = "registry.jdbc.driver";
- public static final String REGISTRY_JDBC_URL = "registry.jdbc.url";
- public static final String REGISTRY_JDBC_USER = "registry.jdbc.user";
- public static final String REGISTRY_JDBC_PASSWORD = "registry.jdbc.password";
- public static final String START_DERBY_ENABLE = "start.derby.server.mode";
- public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
- public static final String DEFAULT_PROJECT_NAME = "default";
- private static NetworkServerControl server;
- private static JdbcStorage db;
- private static String jdbcURl;
- private static String jdbcDriver;
- private static String jdbcUser;
- private static String jdbcPassword;
-
-
- public static void initializeDB() {
- System.setProperty("registry.initialize.state", "0");
- try{
- jdbcDriver = ServerSettings.getSetting(REGISTRY_JDBC_DRIVER);
- jdbcURl = ServerSettings.getSetting(REGISTRY_JDBC_URL);
- jdbcUser = ServerSettings.getSetting(REGISTRY_JDBC_USER);
- jdbcPassword = ServerSettings.getSetting(REGISTRY_JDBC_PASSWORD);
- jdbcURl = jdbcURl + "?" + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
- } catch (ApplicationSettingsException e) {
- logger.error("Unable to read airavata server properties", e.getMessage());
- }
-
- if (getDBType(jdbcURl).equals("derby") && isDerbyStartEnabled()) {
- startDerbyInServerMode();
- }
- db = new JdbcStorage(10, 50, jdbcURl, jdbcDriver, true);
-
- Connection conn = null;
- try {
- conn = db.connect();
- if (!DatabaseCreator.isDatabaseStructureCreated(CONFIGURATION_TABLE, conn)) {
- DatabaseCreator.createRegistryDatabase("database_scripts/expcatalog", conn);
- logger.info("New Database created for Experiment Catalog !!!");
- } else {
- logger.info("Database already created for Experiment Catalog !!!");
- }
- try{
- GatewayResource gateway;
- if (!ExpCatResourceUtils.isGatewayExist(ServerSettings.getDefaultUserGateway())){
- gateway = (GatewayResource)ExpCatResourceUtils.createGateway(ServerSettings.getDefaultUserGateway());
- gateway.save();
- }else {
- gateway = (GatewayResource)ExpCatResourceUtils.getGateway(ServerSettings.getDefaultUserGateway());
- }
-
- UserResource user;
- if (!ExpCatResourceUtils.isUserExist(ServerSettings.getDefaultUser(), ServerSettings.getDefaultUserGateway())){
- user = ExpCatResourceUtils.createUser(ServerSettings.getDefaultUser(), ServerSettings.getDefaultUserPassword(), ServerSettings.getDefaultUserGateway());
- user.save();
- }else {
- user = (UserResource)ExpCatResourceUtils.getUser(ServerSettings.getDefaultUser(), ServerSettings.getDefaultUserGateway());
- }
-
- WorkerResource workerResource;
- if (!gateway.isExists(ResourceType.GATEWAY_WORKER, ServerSettings.getDefaultUserGateway())){
- workerResource = (WorkerResource)gateway.create(ResourceType.GATEWAY_WORKER);
- workerResource.setUser(user.getUserName());
- workerResource.save();
- }else {
- workerResource = (WorkerResource)gateway.get(ResourceType.GATEWAY_WORKER, ServerSettings.getDefaultUser());
- }
- ProjectResource projectResource;
- if (!workerResource.isExists(ResourceType.PROJECT, DEFAULT_PROJECT_NAME)){
- projectResource = workerResource.createProject(DEFAULT_PROJECT_NAME);
- projectResource.setName(DEFAULT_PROJECT_NAME);
- projectResource.setGatewayId(gateway.getGatewayId());
- projectResource.save();
- }
-
- } catch (ApplicationSettingsException e) {
- logger.error("Unable to read airavata-server properties...", e.getMessage());
- }
- } catch (Exception e) {
- logger.error(e.getMessage(), e);
- throw new RuntimeException("Database failure", e);
- } finally {
- db.closeConnection(conn);
- try {
- if(conn != null){
- if (!conn.getAutoCommit()) {
- conn.commit();
- }
- conn.close();
- }
- } catch (SQLException e) {
- logger.error("Error while closing database connection...", e.getMessage(), e);
- }
- }
- System.setProperty("registry.initialize.state", "1");
- }
-
- public static String getDBType(String jdbcUrl){
- try{
- 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 = ServerSettings.getSetting(START_DERBY_ENABLE);
- if("true".equals(s)){
- return true;
- }
- } catch (ApplicationSettingsException e) {
- logger.error("Unable to read airavata server properties", e.getMessage(), e);
- return false;
- }
- return false;
- }
-
- public static void startDerbyInServerMode() {
- try {
- System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
- server = new NetworkServerControl(InetAddress.getByName("0.0.0.0"),
- getPort(jdbcURl),
- jdbcUser, jdbcPassword);
- java.io.PrintWriter consoleWriter = new java.io.PrintWriter(System.out, true);
- server.start(consoleWriter);
- } catch (IOException e) {
- logger.error("Unable to start Apache derby in the server mode! Check whether " +
- "specified port is available");
- } catch (Exception e) {
- logger.error("Unable to start Apache derby in the server mode! Check whether " +
- "specified port is available");
- }
- }
-
- public static void stopDerbyInServerMode() {
- System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "false");
- if (server!=null){
- try {
- server.shutdown();
- } catch (Exception e) {
- logger.error("Error when stopping the derby server : "+e.getLocalizedMessage());
- }
- }
- }
-
- public static int getPort(String jdbcURL){
- try{
- String cleanURI = jdbcURL.substring(5);
- URI uri = URI.create(cleanURI);
- return uri.getPort();
- } catch (Exception e) {
- logger.error(e.getMessage(), e);
- return -1;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/JdbcStorage.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/JdbcStorage.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/JdbcStorage.java
deleted file mode 100644
index 37320a3..0000000
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/JdbcStorage.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- *
- * 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.api.server.util;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.sql.*;
-
-public class JdbcStorage {
- private static Logger log = LoggerFactory.getLogger(JdbcStorage.class);
-
- private ConnectionPool connectionPool;
-
- public JdbcStorage(String jdbcUrl, String jdbcDriver) {
- // default init connection and max connection
- this(3, 50, jdbcUrl, jdbcDriver, true);
- }
-
- public JdbcStorage(int initCon, int maxCon, String url, String driver, boolean enableTransactions) {
- try {
- if (enableTransactions) {
- connectionPool = new ConnectionPool(driver, url, initCon, maxCon, true, false,
- Connection.TRANSACTION_SERIALIZABLE);
- } else {
- connectionPool = new ConnectionPool(driver, url, initCon, maxCon, true);
- }
- } catch (Exception e) {
- throw new RuntimeException("Failed to create database connection pool.", e);
- }
- }
-
- /**
- * Check if this connection pool is auto commit or not
- *
- * @return
- */
- public boolean isAutoCommit() {
- return connectionPool.isAutoCommit();
- }
-
- public void commit(Connection conn) {
- try {
- if (conn != null && !conn.getAutoCommit()) {
- conn.commit();
- }
- } catch (SQLException sqle) {
- log.error("Cannot commit data", sqle);
- }
- }
-
- public void commitAndFree(Connection conn) {
- commit(conn);
- closeConnection(conn);
- }
-
- public void rollback(Connection conn) {
- try {
- if (conn != null && !conn.getAutoCommit()) {
- conn.rollback();
- }
- } catch (SQLException sqle) {
- log.error("Cannot Rollback data", sqle);
- }
- }
-
- public void rollbackAndFree(Connection conn) {
- rollback(conn);
- closeConnection(conn);
- }
-
- public Connection connect() {
-
- Connection conn = null;
- try {
- conn = connectionPool.getConnection();
- } catch (SQLException e) {
- log.error(e.getMessage(), e);
- }
- return conn;
- }
-
- /**
- * This method is provided so that you can have better control over the statement. For example: You can use
- * stmt.setString to convert quotation mark automatically in an UPDATE statement
- *
- * NOTE: Statement is closed after execution
- */
- public int executeUpdateAndClose(PreparedStatement stmt) throws SQLException {
- int rows = 0;
- try {
- rows = stmt.executeUpdate();
- if (rows == 0) {
- log.info("Problem: 0 rows affected by insert/update/delete statement.");
- }
- } finally {
- stmt.close();
- }
- return rows;
- }
-
- public int countRow(String tableName, String columnName) throws SQLException {
- String query = new String("SELECT COUNT(" + columnName + ") FROM " + tableName);
- int count = -1;
- Connection conn = null;
- PreparedStatement stmt = null;
- try {
- conn = connectionPool.getConnection();
- stmt = conn.prepareStatement(query);
- ResultSet rs = stmt.executeQuery();
- rs.next();
- count = rs.getInt(1);
- commit(conn);
- } catch (SQLException sql) {
- rollback(conn);
- throw sql;
- } finally {
- try {
- if (stmt != null && !stmt.isClosed()) {
- stmt.close();
- }
- } finally {
- closeConnection(conn);
- }
- }
- return count;
- }
-
- public void quietlyClose(Connection conn, Statement... stmts) {
- if (stmts != null) {
- for (Statement stmt : stmts) {
- try {
- if (stmt != null && !stmt.isClosed()) {
- stmt.close();
- }
- } catch (SQLException sql) {
- log.error(sql.getMessage(), sql);
- }
- }
- }
- closeConnection(conn);
- }
-
- public void closeConnection(Connection conn) {
- if (conn != null) {
- connectionPool.free(conn);
- }
- }
-
- public void closeAllConnections() {
- if (connectionPool != null)
- connectionPool.dispose();
- }
-
- public void shutdown() throws SQLException {
- connectionPool.shutdown();
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/1eb3b415/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/OrchestratorInitUtil.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/OrchestratorInitUtil.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/OrchestratorInitUtil.java
deleted file mode 100644
index 5add438..0000000
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/OrchestratorInitUtil.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- *
- * 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.api.server.util;
-
-public class OrchestratorInitUtil {
-}