http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java index 8421a57..cf576bc 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class TaskStatusChangeEvent implements org.apache.thrift.TBase<TaskStatusChangeEvent, TaskStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeEvent> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeEvent");
http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java index f4f20b3..be707e2 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class TaskStatusChangeRequestEvent implements org.apache.thrift.TBase<TaskStatusChangeRequestEvent, TaskStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeRequestEvent> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeRequestEvent"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java index b199503..222ed5d 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java @@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory; * * */ -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, ProcessModel._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessModel> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessModel"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java index 4e48db5..6fffc66 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java @@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory; * * */ -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class ComputationalResourceSchedulingModel implements org.apache.thrift.TBase<ComputationalResourceSchedulingModel, ComputationalResourceSchedulingModel._Fields>, java.io.Serializable, Cloneable, Comparable<ComputationalResourceSchedulingModel> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputationalResourceSchedulingModel"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java index d2bee5d..844a948 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class AuthzToken implements org.apache.thrift.TBase<AuthzToken, AuthzToken._Fields>, java.io.Serializable, Cloneable, Comparable<AuthzToken> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthzToken"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java index 20442cb..e29a2e9 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java @@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory; * User friendly reason on how the state is inferred. * */ -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class ExperimentStatus implements org.apache.thrift.TBase<ExperimentStatus, ExperimentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatus> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatus"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java index 3f6d41b..dd91cc6 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class JobStatus implements org.apache.thrift.TBase<JobStatus, JobStatus._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatus> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatus"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java index 7420bc0..f669bbd 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class ProcessStatus implements org.apache.thrift.TBase<ProcessStatus, ProcessStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatus> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatus"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java index 676960f..9d7af95 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class TaskStatus implements org.apache.thrift.TBase<TaskStatus, TaskStatus._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatus> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatus"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java index 6a30988..f0886a7 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class DataStagingTaskModel implements org.apache.thrift.TBase<DataStagingTaskModel, DataStagingTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataStagingTaskModel> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataStagingTaskModel"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java index 6e58e5e..c9fc536 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java @@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory; * EnvironmentSetupTaskModel: A structure holding the environment creation task details * */ -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class EnvironmentSetupTaskModel implements org.apache.thrift.TBase<EnvironmentSetupTaskModel, EnvironmentSetupTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<EnvironmentSetupTaskModel> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EnvironmentSetupTaskModel"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java index 3c2d9f9..ac81ec8 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmissionTaskModel, JobSubmissionTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionTaskModel> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionTaskModel"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java index 62a75c1..badd8db 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class MonitorTaskModel implements org.apache.thrift.TBase<MonitorTaskModel, MonitorTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<MonitorTaskModel> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("MonitorTaskModel"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java index fc0a33b..3bc9f60 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java @@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory; * subTaskModel: * A generic byte object for the Task developer to store internal serialized data into registry catalogs. */ -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<TaskModel> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskModel"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java index a2ccd93..873a7b2 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class Gateway implements org.apache.thrift.TBase<Gateway, Gateway._Fields>, java.io.Serializable, Cloneable, Comparable<Gateway> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Gateway"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java index 000c3d5..5e874ab 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class Group implements org.apache.thrift.TBase<Group, Group._Fields>, java.io.Serializable, Cloneable, Comparable<Group> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Group"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java index 039dd86..fe7316f 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class Project implements org.apache.thrift.TBase<Project, Project._Fields>, java.io.Serializable, Cloneable, Comparable<Project> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Project"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java index c268450..05d6a5d 100644 --- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java +++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-14") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-15") public class User implements org.apache.thrift.TBase<User, User._Fields>, java.io.Serializable, Cloneable, Comparable<User> { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("User"); http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/data-manager-core/pom.xml ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/pom.xml b/modules/data-manager/data-manager-core/pom.xml new file mode 100644 index 0000000..5db4bdd --- /dev/null +++ b/modules/data-manager/data-manager-core/pom.xml @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>airavata</artifactId> + <groupId>org.apache.airavata</groupId> + <version>0.16-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <modelVersion>4.0.0</modelVersion> + <artifactId>data-manager-core</artifactId> + <packaging>jar</packaging> + <name>Airavata Data Manager Core</name> + <url>http://airavata.apache.org/</url> + + <dependencies> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>airavata-data-models</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>airavata-registry-core</artifactId> + <version>${project.version}</version> + </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-commons</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>airavata-server-configuration</artifactId> + <version>${project.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>data-manager-cpi</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>airavata-registry-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>airavata-registry-cpi</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/replica/catalog/core/DataManagerFactory.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/replica/catalog/core/DataManagerFactory.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/replica/catalog/core/DataManagerFactory.java new file mode 100644 index 0000000..c6aba5c --- /dev/null +++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/replica/catalog/core/DataManagerFactory.java @@ -0,0 +1,34 @@ +/* + * + * 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.replica.catalog.core; + +import org.apache.airavata.replica.catalog.cpi.DataManager; +import org.apache.airavata.replica.catalog.cpi.DataManagerException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class DataManagerFactory { + private final static Logger logger = LoggerFactory.getLogger(DataManagerFactory.class); + + public static DataManager getDataManager() throws DataManagerException { + return new DataManagerImpl(); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/replica/catalog/core/DataManagerImpl.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/replica/catalog/core/DataManagerImpl.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/replica/catalog/core/DataManagerImpl.java new file mode 100644 index 0000000..70abc80 --- /dev/null +++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/replica/catalog/core/DataManagerImpl.java @@ -0,0 +1,207 @@ +/* + * + * 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.replica.catalog.core; + +import org.apache.airavata.model.data.resource.DataReplicaLocationModel; +import org.apache.airavata.model.data.resource.DataResourceModel; +import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory; +import org.apache.airavata.registry.cpi.ReplicaCatalog; +import org.apache.airavata.registry.cpi.ReplicaCatalogException; + +import org.apache.airavata.replica.catalog.cpi.DataManager; +import org.apache.airavata.replica.catalog.cpi.DataManagerException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +public class DataManagerImpl implements DataManager { + private final static Logger logger = LoggerFactory.getLogger(DataManagerImpl.class); + + private final ReplicaCatalog replicaCatalog; + + public DataManagerImpl() throws DataManagerException { + try { + this.replicaCatalog = RegistryFactory.getReplicaCatalog(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + + public DataManagerImpl(ReplicaCatalog replicaCatalog){ + this.replicaCatalog = replicaCatalog; + } + + /** + * To create a replica entry for an already existing file(s). This is how the system comes to know about already + * existing resources + * @param dataResourceModel + * @return + */ + @Override + public String registerResource(DataResourceModel dataResourceModel) throws DataManagerException { + try { + String resourceId = replicaCatalog.publishResource(dataResourceModel); + return resourceId; + } catch (ReplicaCatalogException e) { + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + + /** + * To remove a resource entry from the replica catalog + * @param resourceId + * @return + */ + @Override + public boolean removeResource(String resourceId) throws DataManagerException { + try { + boolean result = replicaCatalog.removeResource(resourceId); + return result; + } catch (ReplicaCatalogException e) { + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + + /** + * To update an existing data resource model + * @param dataResourceModel + * @return + * @throws ReplicaCatalogException + */ + @Override + public boolean updateResource(DataResourceModel dataResourceModel) throws DataManagerException { + try { + boolean result = replicaCatalog.updateResource(dataResourceModel); + return result; + } catch (ReplicaCatalogException e) { + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + + /** + * To retrieve a resource object providing the resourceId + * @param resourceId + * @return + */ + @Override + public DataResourceModel getResource(String resourceId) throws DataManagerException { + try { + DataResourceModel dataResource = replicaCatalog.getResource(resourceId); + return dataResource; + } catch (ReplicaCatalogException e) { + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + + /** + * To create a new data replica location. This is how the system comes to know about already + * existing resources + * + * @param dataReplicaLocationModel + * @return + */ + @Override + public String registerReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws DataManagerException { + try { + String replicaId = replicaCatalog.publishReplicaLocation(dataReplicaLocationModel); + return replicaId; + } catch (ReplicaCatalogException e) { + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + + /** + * To remove a replica entry from the replica catalog + * + * @param replicaId + * @return + */ + @Override + public boolean removeReplicaLocation(String replicaId) throws DataManagerException { + try { + boolean result = replicaCatalog.removeReplicaLocation(replicaId); + return result; + } catch (ReplicaCatalogException e) { + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + + /** + * To update an existing data replica model + * + * @param dataReplicaLocationModel + * @return + * @throws ReplicaCatalogException + */ + @Override + public boolean updateReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws DataManagerException { + try { + boolean result = replicaCatalog.updateReplicaLocation(dataReplicaLocationModel); + return result; + } catch (ReplicaCatalogException e) { + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + + /** + * To retrieve a replica object providing the replicaId + * + * @param replicaId + * @return + */ + @Override + public DataReplicaLocationModel getReplicaLocation(String replicaId) throws DataManagerException { + try { + DataReplicaLocationModel dataReplicaLocationModel = replicaCatalog.getReplicaLocation(replicaId); + return dataReplicaLocationModel; + } catch (ReplicaCatalogException e) { + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } + + /** + * To retrieve all the replica entries for a given resource id + * + * @param resourceId + * @return + * @throws ReplicaCatalogException + */ + @Override + public List<DataReplicaLocationModel> getAllReplicaLocations(String resourceId) throws DataManagerException { + try { + List<DataReplicaLocationModel> dataReplicaLocationModelList = replicaCatalog.getAllReplicaLocations(resourceId); + return dataReplicaLocationModelList; + } catch (ReplicaCatalogException e) { + logger.error(e.getMessage(), e); + throw new DataManagerException(e); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/DataManagerFactoryTest.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/DataManagerFactoryTest.java b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/DataManagerFactoryTest.java new file mode 100644 index 0000000..4aa2d1a --- /dev/null +++ b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/DataManagerFactoryTest.java @@ -0,0 +1,41 @@ +/* + * + * 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.replica.catalog.core; + +import junit.framework.Assert; +import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory; +import org.apache.airavata.registry.cpi.ReplicaCatalog; +import org.apache.airavata.registry.cpi.ReplicaCatalogException; +import org.apache.airavata.replica.catalog.cpi.DataManager; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class DataManagerFactoryTest { + private final static Logger logger = LoggerFactory.getLogger(DataManagerFactoryTest.class); + + @Test + public void testCreateDataManager() throws ReplicaCatalogException, ReplicaCatalogException { + ReplicaCatalog dataCatalog = RegistryFactory.getReplicaCatalog(); + DataManager dataManagerImpl = new DataManagerImpl(dataCatalog); + Assert.assertNotNull(dataManagerImpl); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/DataManagerImplTest.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/DataManagerImplTest.java b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/DataManagerImplTest.java new file mode 100644 index 0000000..5944fa6 --- /dev/null +++ b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/DataManagerImplTest.java @@ -0,0 +1,209 @@ +/* + * + * 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.replica.catalog.core; + +import org.apache.airavata.replica.catalog.core.utils.AppCatInit; +import org.apache.airavata.replica.catalog.core.utils.DataCatInit; +import org.apache.airavata.model.data.resource.DataReplicaLocationModel; +import org.apache.airavata.model.data.resource.DataResourceModel; +import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory; +import org.apache.airavata.registry.cpi.ReplicaCatalog; +import org.apache.airavata.replica.catalog.cpi.DataManager; +import org.apache.airavata.replica.catalog.cpi.DataManagerException; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +public class DataManagerImplTest { + private final static Logger logger = LoggerFactory.getLogger(DataManagerImplTest.class); + private static AppCatInit appCatInit; + private static DataCatInit dataCatInit; + private static DataManager dataManager; + private static DataResourceModel dataResourceModel; + private static DataReplicaLocationModel dataReplicaLocationModel; + + @BeforeClass + public static void setUp() { + try { + System.out.println("********** SET UP ************"); + appCatInit = new AppCatInit("appcatalog-derby.sql"); + appCatInit.initializeDB(); + dataCatInit = new DataCatInit("replicacatalog-derby.sql"); + dataCatInit.initializeDB(); + ReplicaCatalog replicaCatalog = RegistryFactory.getReplicaCatalog(); + DataManagerImplTest.dataManager = new DataManagerImpl(replicaCatalog); + dataResourceModel = new DataResourceModel(); + dataResourceModel.setResourceName("test-file.txt"); + dataReplicaLocationModel = new DataReplicaLocationModel(); + dataReplicaLocationModel.setReplicaName("1-st-replica"); + ArrayList<String> dataLocations = new ArrayList<>(); + dataLocations.add("scp://g75.iu.xsede.org:/var/www/portal/experimentData/test-file.txt"); + dataReplicaLocationModel.setDataLocations(dataLocations); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } + + @AfterClass + public static void tearDown() throws Exception { + System.out.println("********** TEAR DOWN ************"); + dataCatInit.stopDerbyServer(); + } + + @Test + public void testPublishDataResource(){ + try { + String resourceId = dataManager.registerResource(dataResourceModel); + org.junit.Assert.assertNotNull(resourceId); + } catch (DataManagerException e) { + e.printStackTrace(); + Assert.fail(); + } + } + + @Test + public void testRemoveDataResource(){ + try { + boolean result = dataManager.removeResource("234234234"); + Assert.assertFalse(result); + String resourceId = dataManager.registerResource(dataResourceModel); + Assert.assertNotNull(resourceId); + result = dataManager.removeResource(resourceId); + Assert.assertTrue(result); + result = dataManager.removeResource(resourceId); + Assert.assertFalse(result); + } catch (DataManagerException e) { + e.printStackTrace(); + Assert.fail(); + } + } + + @Test + public void testGetDataResource(){ + try { + String resourceId = dataManager.registerResource(dataResourceModel); + Assert.assertNotNull(resourceId); + DataResourceModel persistedCopy = dataManager.getResource(resourceId); + Assert.assertNotNull(persistedCopy); + } catch (DataManagerException e) { + e.printStackTrace(); + Assert.fail(); + } + } + + @Test + public void testUpdateDataResource(){ + try { + dataResourceModel.setResourceId(UUID.randomUUID().toString()); + boolean result = dataManager.updateResource(dataResourceModel); + Assert.assertFalse(result); + dataManager.registerResource(dataResourceModel); + dataResourceModel.setResourceName("updated-name"); + dataManager.updateResource(dataResourceModel); + dataResourceModel = dataManager.getResource(dataResourceModel.getResourceId()); + Assert.assertTrue(dataResourceModel.getResourceName().equals("updated-name")); + } catch (DataManagerException e) { + e.printStackTrace(); + Assert.fail(); + } + } + + @Test + public void testPublishReplicaLocation(){ + try { + String resourceId = dataManager.registerResource(dataResourceModel); + dataReplicaLocationModel.setResourceId(resourceId); + String replicaId = dataManager.registerReplicaLocation(dataReplicaLocationModel); + org.junit.Assert.assertNotNull(replicaId); + } catch (DataManagerException e) { + e.printStackTrace(); + Assert.fail(); + } + } + + @Test + public void testRemoveReplicaLocation(){ + try { + String resourceId = dataManager.registerResource(dataResourceModel); + dataReplicaLocationModel.setResourceId(resourceId); + String replicaId = dataManager.registerReplicaLocation(dataReplicaLocationModel); + boolean result = dataManager.removeReplicaLocation(replicaId); + Assert.assertTrue(result); + result = dataManager.removeReplicaLocation(dataReplicaLocationModel.getReplicaId()); + Assert.assertFalse(result); + } catch (DataManagerException e) { + e.printStackTrace(); + Assert.fail(); + } + } + + @Test + public void testGetReplicaLocation(){ + try { + String resourceId = dataManager.registerResource(dataResourceModel); + dataReplicaLocationModel.setResourceId(resourceId); + String replicaId = dataManager.registerReplicaLocation(dataReplicaLocationModel); + DataReplicaLocationModel persistedCopy = dataManager.getReplicaLocation(replicaId); + Assert.assertNotNull(persistedCopy); + } catch (DataManagerException e) { + e.printStackTrace(); + Assert.fail(); + } + } + + @Test + public void testUpdateReplicaLocation(){ + try { + String resourceId = dataManager.registerResource(dataResourceModel); + dataReplicaLocationModel.setResourceId(resourceId); + String replicaId = dataManager.registerReplicaLocation(dataReplicaLocationModel); + DataReplicaLocationModel persistedCopy = dataManager.getReplicaLocation(replicaId); + persistedCopy.setReplicaDescription("updated-description"); + dataManager.updateReplicaLocation(persistedCopy); + persistedCopy = dataManager.getReplicaLocation(replicaId); + Assert.assertTrue(persistedCopy.getReplicaDescription().equals("updated-description")); + } catch (DataManagerException e) { + e.printStackTrace(); + Assert.fail(); + } + } + + @Test + public void testGetAllReplicaLocations(){ + try { + String resourceId = dataManager.registerResource(dataResourceModel); + dataReplicaLocationModel.setResourceId(resourceId); + String replicaId = dataManager.registerReplicaLocation(dataReplicaLocationModel); + List<DataReplicaLocationModel> replicaLocationModelList = dataManager.getAllReplicaLocations(resourceId); + Assert.assertTrue(replicaLocationModelList.get(0).getReplicaId().equals(replicaId)); + } catch (DataManagerException e) { + e.printStackTrace(); + Assert.fail(); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/utils/AppCatInit.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/utils/AppCatInit.java b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/utils/AppCatInit.java new file mode 100644 index 0000000..6842daf --- /dev/null +++ b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/utils/AppCatInit.java @@ -0,0 +1,320 @@ +/* + * + * 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.replica.catalog.core.utils; + +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.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.InetAddress; +import java.net.URI; +import java.sql.*; +import java.util.StringTokenizer; + +public class AppCatInit { + private static final Logger logger = LoggerFactory.getLogger(AppCatInit.class); + public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer"; + public String scriptName = "appcatalog-derby.sql"; + private NetworkServerControl server; + private static final String delimiter = ";"; + public static final String COMPUTE_RESOURCE_TABLE = "COMPUTE_RESOURCE"; + private String jdbcUrl = null; + private String jdbcDriver = null; + private String jdbcUser = null; + private String jdbcPassword = null; + + public AppCatInit(String scriptName) { + this.scriptName = scriptName; + } + + 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; + } + + private static boolean isServerStarted(NetworkServerControl server, int ntries) + { + for (int i = 1; i <= ntries; i ++) + { + try { + Thread.sleep(500); + server.ping(); + return true; + } + catch (Exception e) { + if (i == ntries) + return false; + } + } + return false; + } + + public void initializeDB() { + + 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 properties", e); + } + + startDerbyInServerMode(); + if(!isServerStarted(server, 20)){ + throw new RuntimeException("Derby server cound not started within five seconds..."); + } +// startDerbyInEmbeddedMode(); + + Connection conn = null; + try { + Class.forName(jdbcDriver).newInstance(); + conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword); + if (!isDatabaseStructureCreated(COMPUTE_RESOURCE_TABLE, conn)) { + executeSQLScript(conn); + logger.info("New Database created for App Catalog !!!"); + } else { + logger.debug("Database already created for App Catalog!"); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RuntimeException("Database failure", e); + } finally { + try { + if (conn != null){ + if (!conn.getAutoCommit()) { + conn.commit(); + } + conn.close(); + } + } catch (SQLException e) { + logger.error(e.getMessage(), e); + } + } + } + + public static boolean isDatabaseStructureCreated(String tableName, Connection conn) { + try { + System.out.println("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; + } + + private void executeSQLScript(Connection conn) throws Exception { + StringBuffer sql = new StringBuffer(); + BufferedReader reader = null; + try{ + + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(scriptName); + reader = new BufferedReader(new InputStreamReader(inputStream)); + 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){ + logger.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(); + } + + } + + } + + private static void executeSQL(String sql, Connection conn) throws Exception { + // Check and ignore empty statements + if ("".equals(sql.trim())) { + return; + } + + Statement statement = null; + try { + logger.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); + + logger.debug(sql + " : " + updateCountTotal + " rows affected"); + + SQLWarning warning = conn.getWarnings(); + while (warning != null) { + logger.warn(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 + logger.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) { + logger.error("Error occurred while closing result set.", e); + } + } + } + } + + private void startDerbyInServerMode() { + try { + System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true"); + server = new NetworkServerControl(InetAddress.getByName("0.0.0.0"), + 20000, + 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 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; + } + } + + private void startDerbyInEmbeddedMode(){ + try { + Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); + DriverManager.getConnection("jdbc:derby:memory:unit-testing-jpa;create=true").close(); + } catch (ClassNotFoundException e) { + logger.error(e.getMessage(), e); + } catch (SQLException e) { + logger.error(e.getMessage(), e); + } + } + + public void stopDerbyServer() { + try { + server.shutdown(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/utils/DataCatInit.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/utils/DataCatInit.java b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/utils/DataCatInit.java new file mode 100644 index 0000000..1340f7c --- /dev/null +++ b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/replica/catalog/core/utils/DataCatInit.java @@ -0,0 +1,315 @@ +/* + * + * 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.replica.catalog.core.utils; + +import org.apache.airavata.common.exception.ApplicationSettingsException; +import org.apache.airavata.common.utils.ServerSettings; +import org.apache.airavata.registry.core.replica.catalog.utils.DataCatalogConstants; +import org.apache.derby.drda.NetworkServerControl; +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.net.InetAddress; +import java.net.URI; +import java.sql.*; +import java.util.StringTokenizer; + +public class DataCatInit { + private static final Logger logger = LoggerFactory.getLogger(DataCatInit.class); + public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer"; + public String scriptName = "datacatalog-derby.sql"; + private NetworkServerControl server; + private static final String delimiter = ";"; + private String jdbcUrl = null; + private String jdbcDriver = null; + private String jdbcUser = null; + private String jdbcPassword = null; + + public DataCatInit(String scriptName) { + this.scriptName = scriptName; + } + + 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; + } + + private static boolean isServerStarted(NetworkServerControl server, int ntries) + { + for (int i = 1; i <= ntries; i ++) + { + try { + Thread.sleep(500); + server.ping(); + return true; + } + catch (Exception e) { + if (i == ntries) + return false; + } + } + return false; + } + + public void initializeDB() { + try{ + jdbcDriver = ServerSettings.getSetting("datacatalog.jdbc.driver"); + jdbcUrl = ServerSettings.getSetting("datacatalog.jdbc.url"); + jdbcUser = ServerSettings.getSetting("datacatalog.jdbc.user"); + jdbcPassword = ServerSettings.getSetting("datacatalog.jdbc.password"); + jdbcUrl = jdbcUrl + "?" + "user=" + jdbcUser + "&" + "password=" + jdbcPassword; + } catch (ApplicationSettingsException e) { + logger.error("Unable to read properties", e); + } + + startDerbyInServerMode(); + if(!isServerStarted(server, 20)){ + throw new RuntimeException("Derby server could not started within five seconds..."); + } + Connection conn = null; + try { + Class.forName(jdbcDriver).newInstance(); + conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword); + if (!isDatabaseStructureCreated(DataCatalogConstants.CONFIGURATION, conn)) { + executeSQLScript(conn); + logger.info("New Database created for Data Catalog !!!"); + } else { + logger.debug("Database already created for Data Catalog!"); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RuntimeException("Database failure", e); + } finally { + try { + if (conn != null){ + if (!conn.getAutoCommit()) { + conn.commit(); + } + conn.close(); + } + } catch (SQLException e) { + logger.error(e.getMessage(), e); + } + } + } + + public static boolean isDatabaseStructureCreated(String tableName, Connection conn) { + try { + System.out.println("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; + } + + private void executeSQLScript(Connection conn) throws Exception { + StringBuffer sql = new StringBuffer(); + BufferedReader reader = null; + try{ + + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(scriptName); + reader = new BufferedReader(new InputStreamReader(inputStream)); + 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){ + logger.error("Error occurred while executing SQL script for creating Airavata Data Catalog database", e); + throw new Exception("Error occurred while executing SQL script for creating Airavata Data Catalog database", e); + }finally { + if (reader != null) { + reader.close(); + } + } + } + + private static void executeSQL(String sql, Connection conn) throws Exception { + // Check and ignore empty statements + if ("".equals(sql.trim())) { + return; + } + + Statement statement = null; + try { + logger.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); + + logger.debug(sql + " : " + updateCountTotal + " rows affected"); + + SQLWarning warning = conn.getWarnings(); + while (warning != null) { + logger.warn(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 + logger.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) { + logger.error("Error occurred while closing result set.", e); + } + } + } + } + + private void startDerbyInServerMode() { + try { + System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true"); + server = new NetworkServerControl(InetAddress.getByName("0.0.0.0"), + 20000, + 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 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; + } + } + + private void startDerbyInEmbeddedMode(){ + try { + Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); + DriverManager.getConnection("jdbc:derby:memory:unit-testing-jpa;create=true").close(); + } catch (ClassNotFoundException e) { + logger.error(e.getMessage(), e); + } catch (SQLException e) { + logger.error(e.getMessage(), e); + } + } + + public void stopDerbyServer() { + try { + server.shutdown(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/data-manager-cpi/pom.xml ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-cpi/pom.xml b/modules/data-manager/data-manager-cpi/pom.xml new file mode 100644 index 0000000..0d31350 --- /dev/null +++ b/modules/data-manager/data-manager-cpi/pom.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>airavata</artifactId> + <groupId>org.apache.airavata</groupId> + <version>0.16-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <modelVersion>4.0.0</modelVersion> + <artifactId>data-manager-cpi</artifactId> + <packaging>jar</packaging> + <name>Airavata Data Manager CPI</name> + <url>http://airavata.apache.org/</url> + + <dependencies> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>airavata-data-models</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>airavata-commons</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManager.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManager.java b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManager.java new file mode 100644 index 0000000..ff4e2ac --- /dev/null +++ b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManager.java @@ -0,0 +1,98 @@ +/* + * + * 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.replica.catalog.cpi; + +import org.apache.airavata.model.data.resource.DataReplicaLocationModel; +import org.apache.airavata.model.data.resource.DataResourceModel; + +import java.util.List; + +public interface DataManager { + + /** + * To create a new dataResourceModel. This is how the system comes to know about already + * existing resources + * @param dataResourceModel + * @return + */ + String registerResource(DataResourceModel dataResourceModel) throws DataManagerException; + + /** + * To remove a resource entry from the replica catalog + * @param resourceId + * @return + */ + boolean removeResource(String resourceId) throws DataManagerException; + + + /** + * To update an existing data resource model + * @param dataResourceModel + * @return + * @throws DataManagerException + */ + boolean updateResource(DataResourceModel dataResourceModel) throws DataManagerException; + + /** + * To retrieve a resource object providing the resourceId + * @param resourceId + * @return + */ + DataResourceModel getResource(String resourceId) throws DataManagerException; + + /** + * To create a new data replica location. This is how the system comes to know about already + * existing resources + * @param dataReplicaLocationModel + * @return + */ + String registerReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws DataManagerException; + + /** + * To remove a replica entry from the replica catalog + * @param replicaId + * @return + */ + boolean removeReplicaLocation(String replicaId) throws DataManagerException; + + /** + * To update an existing data replica model + * @param dataReplicaLocationModel + * @return + * @throws DataManagerException + */ + boolean updateReplicaLocation(DataReplicaLocationModel dataReplicaLocationModel) throws DataManagerException; + + /** + * To retrieve a replica object providing the replicaId + * @param replicaId + * @return + */ + DataReplicaLocationModel getReplicaLocation(String replicaId) throws DataManagerException; + + /** + * To retrieve all the replica entries for a given resource id + * @param resourceId + * @return + * @throws DataCatalogException + */ + List<DataReplicaLocationModel> getAllReplicaLocations(String resourceId) throws DataManagerException; +} http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManagerConstants.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManagerConstants.java b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManagerConstants.java new file mode 100644 index 0000000..0de6ac5 --- /dev/null +++ b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManagerConstants.java @@ -0,0 +1,28 @@ +/* + * + * 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.replica.catalog.cpi; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class DataManagerConstants { + private final static Logger logger = LoggerFactory.getLogger(DataManagerConstants.class); +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManagerException.java ---------------------------------------------------------------------- diff --git a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManagerException.java b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManagerException.java new file mode 100644 index 0000000..d695400 --- /dev/null +++ b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/replica/catalog/cpi/DataManagerException.java @@ -0,0 +1,35 @@ +/** + * 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.replica.catalog.cpi; + +public class DataManagerException extends Exception{ + + public DataManagerException(Throwable e) { + super(e); + } + + public DataManagerException(String message) { + super(message, null); + } + + public DataManagerException(String message, Throwable e) { + super(message, e); + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/data-manager/pom.xml ---------------------------------------------------------------------- diff --git a/modules/data-manager/pom.xml b/modules/data-manager/pom.xml new file mode 100644 index 0000000..fd980ed --- /dev/null +++ b/modules/data-manager/pom.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>airavata</artifactId> + <groupId>org.apache.airavata</groupId> + <version>0.16-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + + <modelVersion>4.0.0</modelVersion> + <artifactId>data-manager</artifactId> + <packaging>pom</packaging> + <name>Airavata Data Manager</name> + <url>http://airavata.apache.org/</url> + + <modules> + <module>data-manager-core</module> + <module>data-manager-cpi</module> + </modules> + + <dependencies> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.7</version> + <scope>test</scope> + </dependency> + </dependencies> +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java index 400208f..8e4ed08 100644 --- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/RegistryFactory.java @@ -24,7 +24,7 @@ package org.apache.airavata.registry.core.experiment.catalog.impl; import org.apache.airavata.common.exception.ApplicationSettingsException; import org.apache.airavata.common.utils.ServerSettings; import org.apache.airavata.registry.core.app.catalog.impl.AppCatalogImpl; -import org.apache.airavata.registry.core.replica.catalog.impl.DataCatalogImpl; +import org.apache.airavata.registry.core.replica.catalog.impl.ReplicaCatalogImpl; import org.apache.airavata.registry.core.impl.RegistryImpl; import org.apache.airavata.registry.cpi.*; import org.slf4j.Logger; @@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory; public class RegistryFactory { private static ExperimentCatalog experimentCatalog; private static AppCatalog appCatalog; - private static DataCatalog dataCatalog; + private static ReplicaCatalog replicaCatalog; private static Registry registry; private static Logger logger = LoggerFactory.getLogger(RegistryFactory.class); @@ -100,16 +100,16 @@ public class RegistryFactory { return appCatalog; } - public static DataCatalog getDataCatalog() throws DataCatalogException { + public static ReplicaCatalog getReplicaCatalog() throws ReplicaCatalogException { try { - if (dataCatalog == null) { - dataCatalog = new DataCatalogImpl(); + if (replicaCatalog == null) { + replicaCatalog = new ReplicaCatalogImpl(); } } catch (Exception e) { logger.error("Unable to create data catalog instance", e); - throw new DataCatalogException(e); + throw new ReplicaCatalogException(e); } - return dataCatalog; + return replicaCatalog; } http://git-wip-us.apache.org/repos/asf/airavata/blob/098c2306/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/impl/RegistryImpl.java ---------------------------------------------------------------------- diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/impl/RegistryImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/impl/RegistryImpl.java index ea5663e..0e3c006 100644 --- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/impl/RegistryImpl.java +++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/impl/RegistryImpl.java @@ -22,7 +22,7 @@ package org.apache.airavata.registry.core.impl; import org.apache.airavata.registry.core.app.catalog.impl.AppCatalogImpl; -import org.apache.airavata.registry.core.replica.catalog.impl.DataCatalogImpl; +import org.apache.airavata.registry.core.replica.catalog.impl.ReplicaCatalogImpl; import org.apache.airavata.registry.core.experiment.catalog.impl.ExperimentCatalogImpl; import org.apache.airavata.registry.cpi.*; @@ -43,7 +43,7 @@ public class RegistryImpl implements Registry { } @Override - public DataCatalog getDataCatalog() throws RegistryException { - return new DataCatalogImpl(); + public ReplicaCatalog getReplicaCatalog() throws RegistryException { + return new ReplicaCatalogImpl(); } }
