initial commit
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/920f55b1 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/920f55b1 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/920f55b1 Branch: refs/heads/airavata-gov-registry Commit: 920f55b124c2e34c9f4619dee309daaa6def8bfe Parents: a5156a9 Author: scnakandala <supun.nakand...@gmail.com> Authored: Tue Sep 20 15:51:18 2016 -0400 Committer: scnakandala <supun.nakand...@gmail.com> Committed: Tue Sep 20 15:51:18 2016 -0400 ---------------------------------------------------------------------- .../airavata-gov-registry-core/pom.xml | 37 + .../src/main/java/META-INF/persistence.xml | 15 + .../gov/registry/db/entities/DomainEntity.java | 113 + .../gov/registry/db/entities/EntityEntity.java | 162 + .../registry/db/entities/EntityTypeEntity.java | 124 + .../db/entities/GroupMembershipEntity.java | 88 + .../db/entities/GroupMembershipEntityPK.java | 74 + .../db/entities/PermissionTypeEntity.java | 112 + .../gov/registry/db/entities/SharingEntity.java | 111 + .../registry/db/entities/SharingEntityPK.java | 88 + .../gov/registry/db/entities/UserEntity.java | 111 + .../registry/db/entities/UserGroupEntity.java | 148 + .../gov/registry/db/utils/JPAUtils.java | 87 + .../gov/registry/server/GovRegistryServer.java | 28 + .../server/GovRegistryServerHandler.java | 28 + .../src/main/resources/gov-registry.sql | 116 + .../airavata-gov-registry-stubs/pom.xml | 16 + .../airavata/gov/registry/models/Domain.java | 817 + .../airavata/gov/registry/models/Entitiy.java | 1401 + .../airavata/gov/registry/models/Entity.java | 1404 + .../gov/registry/models/EntityType.java | 924 + .../registry/models/GovRegistryException.java | 391 + .../airavata/gov/registry/models/Group.java | 1154 + .../airavata/gov/registry/models/GroupType.java | 45 + .../gov/registry/models/PermissionType.java | 817 + .../airavata/gov/registry/models/User.java | 817 + .../models/gov_reg_modelsConstants.java | 41 + .../service/cpi/GovRegistryService.java | 33673 +++++++++++++++++ airavata-gov-registry/pom.xml | 21 + .../thrift_models/gov_reg_cpi.thrift | 85 + .../thrift_models/gov_reg_models.thrift | 91 + .../thrift_models/thrift-gen.sh | 16 + 32 files changed, 43155 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/pom.xml ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/pom.xml b/airavata-gov-registry/airavata-gov-registry-core/pom.xml new file mode 100644 index 0000000..b0aac88 --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/pom.xml @@ -0,0 +1,37 @@ +<?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>gov-registry</artifactId> + <groupId>org.apache.airavata</groupId> + <relativePath>../pom.xml</relativePath> + <version>${global.version}</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>airavata-gov-registry-core</artifactId> + <dependencies> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>1.7.10</version> + </dependency> + <dependency> + <groupId>org.apache.thrift</groupId> + <artifactId>libthrift</artifactId> + <version>0.9.3</version> + </dependency> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>airavata-gov-registry-stubs</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/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/META-INF/persistence.xml ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/META-INF/persistence.xml b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/META-INF/persistence.xml new file mode 100644 index 0000000..4a89174 --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/META-INF/persistence.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"> + + <persistence-unit name="airavata-gov-registry"> + <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> + <class>org.apache.airavata.gov.registry.db.entities.DomainEntity</class> + <class>org.apache.airavata.gov.registry.db.entities.EntityEntity</class> + <class>org.apache.airavata.gov.registry.db.entities.EntityTypeEntity</class> + <class>org.apache.airavata.gov.registry.db.entities.GroupMembershipEntity</class> + <class>org.apache.airavata.gov.registry.db.entities.PermissionTypeEntity</class> + <class>org.apache.airavata.gov.registry.db.entities.SharingEntity</class> + <class>org.apache.airavata.gov.registry.db.entities.UserEntity</class> + <class>org.apache.airavata.gov.registry.db.entities.UserGroupEntity</class> + </persistence-unit> +</persistence> http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/DomainEntity.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/DomainEntity.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/DomainEntity.java new file mode 100644 index 0000000..0de9d62 --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/DomainEntity.java @@ -0,0 +1,113 @@ +/* + * + * 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.gov.registry.db.entities; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.*; + +@Entity +@Table(name = "DOMAIN", schema = "" ) +public class DomainEntity { + private final static Logger logger = LoggerFactory.getLogger(DomainEntity.class); + private String domainId; + private String name; + private String description; + private String createdTime; + private String updatedTime; + + @Id + @Column(name = "DOMAIN_ID") + public String getDomainId() { + return domainId; + } + + public void setDomainId(String domainId) { + this.domainId = domainId; + } + + @Basic + @Column(name = "NAME") + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Basic + @Column(name = "DESCRIPTION") + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Basic + @Column(name = "CREATED_TIME") + public String getCreatedTime() { + return createdTime; + } + + public void setCreatedTime(String createdTime) { + this.createdTime = createdTime; + } + + @Basic + @Column(name = "UPDATED_TIME") + public String getUpdatedTime() { + return updatedTime; + } + + public void setUpdatedTime(String updatedTime) { + this.updatedTime = updatedTime; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + DomainEntity that = (DomainEntity) o; + + if (domainId != null ? !domainId.equals(that.domainId) : that.domainId != null) return false; + if (name != null ? !name.equals(that.name) : that.name != null) return false; + if (description != null ? !description.equals(that.description) : that.description != null) return false; + if (createdTime != null ? !createdTime.equals(that.createdTime) : that.createdTime != null) return false; + if (updatedTime != null ? !updatedTime.equals(that.updatedTime) : that.updatedTime != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = domainId != null ? domainId.hashCode() : 0; + result = 31 * result + (name != null ? name.hashCode() : 0); + result = 31 * result + (description != null ? description.hashCode() : 0); + result = 31 * result + (createdTime != null ? createdTime.hashCode() : 0); + result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0); + return result; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityEntity.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityEntity.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityEntity.java new file mode 100644 index 0000000..6abed54 --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityEntity.java @@ -0,0 +1,162 @@ +/* + * + * 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.gov.registry.db.entities; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.*; +import java.util.Arrays; + +@Entity +@Table(name = "ENTITY", schema = "") +public class EntityEntity { + private final static Logger logger = LoggerFactory.getLogger(EntityEntity.class); + private String entityId; + private String name; + private String description; + private byte[] metadata; + private String fullText; + private String createdTime; + private String updatedTime; + private DomainEntity domainByDomainId; + private EntityEntity entityByParentEntityId; + + @Id + @Column(name = "ENTITY_ID") + public String getEntityId() { + return entityId; + } + + public void setEntityId(String entityId) { + this.entityId = entityId; + } + + @Basic + @Column(name = "NAME") + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Basic + @Column(name = "DESCRIPTION") + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Basic + @Column(name = "METADATA") + public byte[] getMetadata() { + return metadata; + } + + public void setMetadata(byte[] metadata) { + this.metadata = metadata; + } + + @Basic + @Column(name = "FULL_TEXT") + public String getFullText() { + return fullText; + } + + public void setFullText(String fullText) { + this.fullText = fullText; + } + + @Basic + @Column(name = "CREATED_TIME") + public String getCreatedTime() { + return createdTime; + } + + public void setCreatedTime(String createdTime) { + this.createdTime = createdTime; + } + + @Basic + @Column(name = "UPDATED_TIME") + public String getUpdatedTime() { + return updatedTime; + } + + public void setUpdatedTime(String updatedTime) { + this.updatedTime = updatedTime; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + EntityEntity that = (EntityEntity) o; + + if (entityId != null ? !entityId.equals(that.entityId) : that.entityId != null) return false; + if (name != null ? !name.equals(that.name) : that.name != null) return false; + if (description != null ? !description.equals(that.description) : that.description != null) return false; + if (!Arrays.equals(metadata, that.metadata)) return false; + if (fullText != null ? !fullText.equals(that.fullText) : that.fullText != null) return false; + if (createdTime != null ? !createdTime.equals(that.createdTime) : that.createdTime != null) return false; + if (updatedTime != null ? !updatedTime.equals(that.updatedTime) : that.updatedTime != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = entityId != null ? entityId.hashCode() : 0; + result = 31 * result + (name != null ? name.hashCode() : 0); + result = 31 * result + (description != null ? description.hashCode() : 0); + result = 31 * result + (metadata != null ? Arrays.hashCode(metadata) : 0); + result = 31 * result + (fullText != null ? fullText.hashCode() : 0); + result = 31 * result + (createdTime != null ? createdTime.hashCode() : 0); + result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0); + return result; + } + + @ManyToOne + @JoinColumn(name = "DOMAIN_ID", referencedColumnName = "DOMAIN_ID") + public DomainEntity getDomainByDomainId() { + return domainByDomainId; + } + + public void setDomainByDomainId(DomainEntity domainByDomainId) { + this.domainByDomainId = domainByDomainId; + } + + @ManyToOne + @JoinColumn(name = "PARENT_ENTITY_ID", referencedColumnName = "ENTITY_ID") + public EntityEntity getEntityByParentEntityId() { + return entityByParentEntityId; + } + + public void setEntityByParentEntityId(EntityEntity entityByParentEntityId) { + this.entityByParentEntityId = entityByParentEntityId; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityTypeEntity.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityTypeEntity.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityTypeEntity.java new file mode 100644 index 0000000..f54eb91 --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityTypeEntity.java @@ -0,0 +1,124 @@ +/* + * + * 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.gov.registry.db.entities; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.*; + +@Entity +@Table(name = "ENTITY_TYPE", schema = "") +public class EntityTypeEntity { + private final static Logger logger = LoggerFactory.getLogger(EntityTypeEntity.class); + private String entityTypeId; + private String name; + private String description; + private String createdTime; + private String updatedTime; + private DomainEntity domainByDomainId; + + @Id + @Column(name = "ENTITY_TYPE_ID") + public String getEntityTypeId() { + return entityTypeId; + } + + public void setEntityTypeId(String entityTypeId) { + this.entityTypeId = entityTypeId; + } + + @Basic + @Column(name = "NAME") + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Basic + @Column(name = "DESCRIPTION") + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Basic + @Column(name = "CREATED_TIME") + public String getCreatedTime() { + return createdTime; + } + + public void setCreatedTime(String createdTime) { + this.createdTime = createdTime; + } + + @Basic + @Column(name = "UPDATED_TIME") + public String getUpdatedTime() { + return updatedTime; + } + + public void setUpdatedTime(String updatedTime) { + this.updatedTime = updatedTime; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + EntityTypeEntity that = (EntityTypeEntity) o; + + if (entityTypeId != null ? !entityTypeId.equals(that.entityTypeId) : that.entityTypeId != null) return false; + if (name != null ? !name.equals(that.name) : that.name != null) return false; + if (description != null ? !description.equals(that.description) : that.description != null) return false; + if (createdTime != null ? !createdTime.equals(that.createdTime) : that.createdTime != null) return false; + if (updatedTime != null ? !updatedTime.equals(that.updatedTime) : that.updatedTime != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = entityTypeId != null ? entityTypeId.hashCode() : 0; + result = 31 * result + (name != null ? name.hashCode() : 0); + result = 31 * result + (description != null ? description.hashCode() : 0); + result = 31 * result + (createdTime != null ? createdTime.hashCode() : 0); + result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0); + return result; + } + + @ManyToOne + @JoinColumn(name = "DOMAIN_ID", referencedColumnName = "DOMAIN_ID") + public DomainEntity getDomainByDomainId() { + return domainByDomainId; + } + + public void setDomainByDomainId(DomainEntity domainByDomainId) { + this.domainByDomainId = domainByDomainId; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/GroupMembershipEntity.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/GroupMembershipEntity.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/GroupMembershipEntity.java new file mode 100644 index 0000000..8fd9329 --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/GroupMembershipEntity.java @@ -0,0 +1,88 @@ +/* + * + * 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.gov.registry.db.entities; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.*; + +@Entity +@Table(name = "GROUP_MEMBERSHIP", schema = "") +@IdClass(GroupMembershipEntityPK.class) +public class GroupMembershipEntity { + private final static Logger logger = LoggerFactory.getLogger(GroupMembershipEntity.class); + private String parentId; + private String childId; + private String childType; + + @Id + @Column(name = "PARENT_ID") + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + @Id + @Column(name = "CHILD_ID") + public String getChildId() { + return childId; + } + + public void setChildId(String childId) { + this.childId = childId; + } + + @Basic + @Column(name = "CHILD_TYPE") + public String getChildType() { + return childType; + } + + public void setChildType(String childType) { + this.childType = childType; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + GroupMembershipEntity that = (GroupMembershipEntity) o; + + if (parentId != null ? !parentId.equals(that.parentId) : that.parentId != null) return false; + if (childId != null ? !childId.equals(that.childId) : that.childId != null) return false; + if (childType != null ? !childType.equals(that.childType) : that.childType != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = parentId != null ? parentId.hashCode() : 0; + result = 31 * result + (childId != null ? childId.hashCode() : 0); + result = 31 * result + (childType != null ? childType.hashCode() : 0); + return result; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/GroupMembershipEntityPK.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/GroupMembershipEntityPK.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/GroupMembershipEntityPK.java new file mode 100644 index 0000000..2dfbefb --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/GroupMembershipEntityPK.java @@ -0,0 +1,74 @@ +/* + * + * 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.gov.registry.db.entities; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.Column; +import javax.persistence.Id; +import java.io.Serializable; + +public class GroupMembershipEntityPK implements Serializable { + private final static Logger logger = LoggerFactory.getLogger(GroupMembershipEntityPK.class); + private String parentId; + private String childId; + + @Column(name = "PARENT_ID") + @Id + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + @Column(name = "CHILD_ID") + @Id + public String getChildId() { + return childId; + } + + public void setChildId(String childId) { + this.childId = childId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + GroupMembershipEntityPK that = (GroupMembershipEntityPK) o; + + if (parentId != null ? !parentId.equals(that.parentId) : that.parentId != null) return false; + if (childId != null ? !childId.equals(that.childId) : that.childId != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = parentId != null ? parentId.hashCode() : 0; + result = 31 * result + (childId != null ? childId.hashCode() : 0); + return result; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/PermissionTypeEntity.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/PermissionTypeEntity.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/PermissionTypeEntity.java new file mode 100644 index 0000000..198bc9e --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/PermissionTypeEntity.java @@ -0,0 +1,112 @@ +/* + * + * 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.gov.registry.db.entities; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.*; + +@Entity +@Table(name = "PERMISSION_TYPE", schema = "") +public class PermissionTypeEntity { + private final static Logger logger = LoggerFactory.getLogger(PermissionTypeEntity.class); + private String permissionTypeId; + private String name; + private String createdTime; + private String updatedTime; + private DomainEntity domainByDomainId; + + @Id + @Column(name = "PERMISSION_TYPE_ID") + public String getPermissionTypeId() { + return permissionTypeId; + } + + public void setPermissionTypeId(String permissionTypeId) { + this.permissionTypeId = permissionTypeId; + } + + @Basic + @Column(name = "NAME") + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Basic + @Column(name = "CREATED_TIME") + public String getCreatedTime() { + return createdTime; + } + + public void setCreatedTime(String createdTime) { + this.createdTime = createdTime; + } + + @Basic + @Column(name = "UPDATED_TIME") + public String getUpdatedTime() { + return updatedTime; + } + + public void setUpdatedTime(String updatedTime) { + this.updatedTime = updatedTime; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + PermissionTypeEntity that = (PermissionTypeEntity) o; + + if (permissionTypeId != null ? !permissionTypeId.equals(that.permissionTypeId) : that.permissionTypeId != null) + return false; + if (name != null ? !name.equals(that.name) : that.name != null) return false; + if (createdTime != null ? !createdTime.equals(that.createdTime) : that.createdTime != null) return false; + if (updatedTime != null ? !updatedTime.equals(that.updatedTime) : that.updatedTime != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = permissionTypeId != null ? permissionTypeId.hashCode() : 0; + result = 31 * result + (name != null ? name.hashCode() : 0); + result = 31 * result + (createdTime != null ? createdTime.hashCode() : 0); + result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0); + return result; + } + + @ManyToOne + @JoinColumn(name = "DOMAIN_ID", referencedColumnName = "DOMAIN_ID") + public DomainEntity getDomainByDomainId() { + return domainByDomainId; + } + + public void setDomainByDomainId(DomainEntity domainByDomainId) { + this.domainByDomainId = domainByDomainId; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/SharingEntity.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/SharingEntity.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/SharingEntity.java new file mode 100644 index 0000000..e9b949d --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/SharingEntity.java @@ -0,0 +1,111 @@ +/* + * + * 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.gov.registry.db.entities; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.*; + +@Entity +@Table(name = "SHARING", schema = "") +@IdClass(SharingEntityPK.class) +public class SharingEntity { + private final static Logger logger = LoggerFactory.getLogger(SharingEntity.class); + private String permissionTypeId; + private String entityId; + private String groupId; + private PermissionTypeEntity permissionTypeByPermissionTypeId; + private EntityTypeEntity entityTypeByEntityTypeId; + + @Id + @Column(name = "PERMISSION_TYPE_ID") + public String getPermissionTypeId() { + return permissionTypeId; + } + + public void setPermissionTypeId(String permissionTypeId) { + this.permissionTypeId = permissionTypeId; + } + + @Id + @Column(name = "ENTITY_ID") + public String getEntityId() { + return entityId; + } + + public void setEntityId(String entityId) { + this.entityId = entityId; + } + + @Id + @Column(name = "GROUP_ID") + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + SharingEntity that = (SharingEntity) o; + + if (permissionTypeId != null ? !permissionTypeId.equals(that.permissionTypeId) : that.permissionTypeId != null) + return false; + if (entityId != null ? !entityId.equals(that.entityId) : that.entityId != null) return false; + if (groupId != null ? !groupId.equals(that.groupId) : that.groupId != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = permissionTypeId != null ? permissionTypeId.hashCode() : 0; + result = 31 * result + (entityId != null ? entityId.hashCode() : 0); + result = 31 * result + (groupId != null ? groupId.hashCode() : 0); + return result; + } + + @ManyToOne + @JoinColumn(name = "PERMISSION_TYPE_ID", referencedColumnName = "PERMISSION_TYPE_ID", nullable = false) + public PermissionTypeEntity getPermissionTypeByPermissionTypeId() { + return permissionTypeByPermissionTypeId; + } + + public void setPermissionTypeByPermissionTypeId(PermissionTypeEntity permissionTypeByPermissionTypeId) { + this.permissionTypeByPermissionTypeId = permissionTypeByPermissionTypeId; + } + + @ManyToOne + @JoinColumn(name = "ENTITY_TYPE_ID", referencedColumnName = "ENTITY_TYPE_ID") + public EntityTypeEntity getEntityTypeByEntityTypeId() { + return entityTypeByEntityTypeId; + } + + public void setEntityTypeByEntityTypeId(EntityTypeEntity entityTypeByEntityTypeId) { + this.entityTypeByEntityTypeId = entityTypeByEntityTypeId; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/SharingEntityPK.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/SharingEntityPK.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/SharingEntityPK.java new file mode 100644 index 0000000..8274904 --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/SharingEntityPK.java @@ -0,0 +1,88 @@ +/* + * + * 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.gov.registry.db.entities; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.Column; +import javax.persistence.Id; +import java.io.Serializable; + +public class SharingEntityPK implements Serializable { + private final static Logger logger = LoggerFactory.getLogger(SharingEntityPK.class); + private String permissionTypeId; + private String entityId; + private String groupId; + + @Column(name = "PERMISSION_TYPE_ID") + @Id + public String getPermissionTypeId() { + return permissionTypeId; + } + + public void setPermissionTypeId(String permissionTypeId) { + this.permissionTypeId = permissionTypeId; + } + + @Column(name = "ENTITY_ID") + @Id + public String getEntityId() { + return entityId; + } + + public void setEntityId(String entityId) { + this.entityId = entityId; + } + + @Column(name = "GROUP_ID") + @Id + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + SharingEntityPK that = (SharingEntityPK) o; + + if (permissionTypeId != null ? !permissionTypeId.equals(that.permissionTypeId) : that.permissionTypeId != null) + return false; + if (entityId != null ? !entityId.equals(that.entityId) : that.entityId != null) return false; + if (groupId != null ? !groupId.equals(that.groupId) : that.groupId != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = permissionTypeId != null ? permissionTypeId.hashCode() : 0; + result = 31 * result + (entityId != null ? entityId.hashCode() : 0); + result = 31 * result + (groupId != null ? groupId.hashCode() : 0); + return result; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserEntity.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserEntity.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserEntity.java new file mode 100644 index 0000000..a19321f --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserEntity.java @@ -0,0 +1,111 @@ +/* + * + * 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.gov.registry.db.entities; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.*; + +@Entity +@Table(name = "USER", schema = "") +public class UserEntity { + private final static Logger logger = LoggerFactory.getLogger(UserEntity.class); + private String userId; + private String userName; + private String createdTime; + private String updatedTime; + private DomainEntity domainByDomainId; + + @Id + @Column(name = "USER_ID") + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + @Basic + @Column(name = "USER_NAME") + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + @Basic + @Column(name = "CREATED_TIME") + public String getCreatedTime() { + return createdTime; + } + + public void setCreatedTime(String createdTime) { + this.createdTime = createdTime; + } + + @Basic + @Column(name = "UPDATED_TIME") + public String getUpdatedTime() { + return updatedTime; + } + + public void setUpdatedTime(String updatedTime) { + this.updatedTime = updatedTime; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + UserEntity that = (UserEntity) o; + + if (userId != null ? !userId.equals(that.userId) : that.userId != null) return false; + if (userName != null ? !userName.equals(that.userName) : that.userName != null) return false; + if (createdTime != null ? !createdTime.equals(that.createdTime) : that.createdTime != null) return false; + if (updatedTime != null ? !updatedTime.equals(that.updatedTime) : that.updatedTime != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = userId != null ? userId.hashCode() : 0; + result = 31 * result + (userName != null ? userName.hashCode() : 0); + result = 31 * result + (createdTime != null ? createdTime.hashCode() : 0); + result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0); + return result; + } + + @ManyToOne + @JoinColumn(name = "DOMAIN_ID", referencedColumnName = "DOMAIN_ID") + public DomainEntity getDomainByDomainId() { + return domainByDomainId; + } + + public void setDomainByDomainId(DomainEntity domainByDomainId) { + this.domainByDomainId = domainByDomainId; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserGroupEntity.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserGroupEntity.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserGroupEntity.java new file mode 100644 index 0000000..d0a6bbb --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserGroupEntity.java @@ -0,0 +1,148 @@ +/* + * + * 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.gov.registry.db.entities; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.*; + +@Entity +@Table(name = "USER_GROUP", schema = "") +public class UserGroupEntity { + private final static Logger logger = LoggerFactory.getLogger(UserGroupEntity.class); + private String groupId; + private String name; + private String description; + private String type; + private String createdTime; + private String updatedTime; + private DomainEntity domainByDomainId; + private UserEntity userByOwnerId; + + @Id + @Column(name = "GROUP_ID") + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + @Basic + @Column(name = "NAME") + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Basic + @Column(name = "DESCRIPTION") + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Basic + @Column(name = "TYPE") + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Basic + @Column(name = "CREATED_TIME") + public String getCreatedTime() { + return createdTime; + } + + public void setCreatedTime(String createdTime) { + this.createdTime = createdTime; + } + + @Basic + @Column(name = "UPDATED_TIME") + public String getUpdatedTime() { + return updatedTime; + } + + public void setUpdatedTime(String updatedTime) { + this.updatedTime = updatedTime; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + UserGroupEntity that = (UserGroupEntity) o; + + if (groupId != null ? !groupId.equals(that.groupId) : that.groupId != null) return false; + if (name != null ? !name.equals(that.name) : that.name != null) return false; + if (description != null ? !description.equals(that.description) : that.description != null) return false; + if (type != null ? !type.equals(that.type) : that.type != null) return false; + if (createdTime != null ? !createdTime.equals(that.createdTime) : that.createdTime != null) return false; + if (updatedTime != null ? !updatedTime.equals(that.updatedTime) : that.updatedTime != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = groupId != null ? groupId.hashCode() : 0; + result = 31 * result + (name != null ? name.hashCode() : 0); + result = 31 * result + (description != null ? description.hashCode() : 0); + result = 31 * result + (type != null ? type.hashCode() : 0); + result = 31 * result + (createdTime != null ? createdTime.hashCode() : 0); + result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0); + return result; + } + + @ManyToOne + @JoinColumn(name = "DOMAIN_ID", referencedColumnName = "DOMAIN_ID") + public DomainEntity getDomainByDomainId() { + return domainByDomainId; + } + + public void setDomainByDomainId(DomainEntity domainByDomainId) { + this.domainByDomainId = domainByDomainId; + } + + @ManyToOne + @JoinColumn(name = "OWNER_ID", referencedColumnName = "USER_ID") + public UserEntity getUserByOwnerId() { + return userByOwnerId; + } + + public void setUserByOwnerId(UserEntity userByOwnerId) { + this.userByOwnerId = userByOwnerId; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/JPAUtils.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/JPAUtils.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/JPAUtils.java new file mode 100644 index 0000000..d94a0eb --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/JPAUtils.java @@ -0,0 +1,87 @@ +/* + * + * 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.gov.registry.db.utils; + +import org.apache.airavata.common.exception.ApplicationSettingsException; +import org.apache.airavata.common.utils.ServerSettings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.persistence.*; +import java.util.HashMap; +import java.util.Map; + +public class JPAUtils { + private final static Logger logger = LoggerFactory.getLogger(JPAUtils.class); + + private static final String PERSISTENCE_UNIT_NAME = "appcatalog_data"; + private static final String GOV_REG_JDBC_DRIVER = "appcatalog.jdbc.driver"; + private static final String GOV_REG_JDBC_URL = "appcatalog.jdbc.url"; + private static final String GOV_REG_JDBC_USER = "appcatalog.jdbc.user"; + private static final String GOV_REG_JDBC_PWD = "appcatalog.jdbc.password"; + private static final String GOV_REG_VALIDATION_QUERY = "appcatalog.validationQuery"; + private static final String JPA_CACHE_SIZE = "jpa.cache.size"; + private static final String JPA_CACHE_ENABLED = "cache.enable"; + + @PersistenceUnit(unitName = "airavata-gov-registry") + protected static EntityManagerFactory factory; + @PersistenceContext(unitName = "airavata-gov-registry") + private static EntityManager appCatEntityManager; + + public static EntityManager getEntityManager() throws ApplicationSettingsException { + if (factory == null) { +// String connectionProperties = "DriverClassName=" + readServerProperties(GOV_REG_JDBC_DRIVER) + "," + +// "Url=" + readServerProperties(GOV_REG_JDBC_URL) + "?autoReconnect=true," + +// "Username=" + readServerProperties(GOV_REG_JDBC_USER) + "," + +// "Password=" + readServerProperties(GOV_REG_JDBC_PWD) + +// ",validationQuery=" + readServerProperties(GOV_REG_VALIDATION_QUERY); +// + String connectionProperties = "jdbc:mysql://localhost:3306/airavata_gov_registry;create=true;user=root;password="; + + Map<String, String> properties = new HashMap<String, String>(); + properties.put("openjpa.ConnectionDriverName", "org.apache.commons.dbcp.BasicDataSource"); + properties.put("openjpa.ConnectionProperties", connectionProperties); + properties.put("openjpa.DynamicEnhancementAgent", "true"); + properties.put("openjpa.RuntimeUnenhancedClasses", "unsupported"); + // For app catalog, we don't need caching +// properties.put("openjpa.DataCache","" + readServerProperties(JPA_CACHE_ENABLED) + "(CacheSize=" + Integer.valueOf(readServerProperties(JPA_CACHE_SIZE)) + ", SoftReferenceSize=0)"); +// properties.put("openjpa.QueryCache","" + readServerProperties(JPA_CACHE_ENABLED) + "(CacheSize=" + Integer.valueOf(readServerProperties(JPA_CACHE_SIZE)) + ", SoftReferenceSize=0)"); + properties.put("openjpa.RemoteCommitProvider", "sjvm"); + properties.put("openjpa.Log", "DefaultLevel=INFO, Runtime=INFO, Tool=INFO, SQL=INFO"); + properties.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)"); + properties.put("openjpa.jdbc.QuerySQLCache", "false"); + properties.put("openjpa.ConnectionFactoryProperties", "PrettyPrint=true, PrettyPrintLineLength=72," + + " PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=31536000, autoReconnect=true"); + factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME, properties); + } + appCatEntityManager = factory.createEntityManager(); + return appCatEntityManager; + } + + private static String readServerProperties(String propertyName) throws ApplicationSettingsException { + try { + return ServerSettings.getSetting(propertyName); + } catch (ApplicationSettingsException e) { + logger.error("Unable to read airavata-server.properties...", e); + throw new ApplicationSettingsException("Unable to read airavata-server.properties..."); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServer.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServer.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServer.java new file mode 100644 index 0000000..276c99e --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServer.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.gov.registry.server; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class GovRegistryServer { + private final static Logger logger = LoggerFactory.getLogger(GovRegistryServer.class); +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServerHandler.java ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServerHandler.java b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServerHandler.java new file mode 100644 index 0000000..2fdfb7e --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServerHandler.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.gov.registry.server; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class GovRegistryServerHandler { + private final static Logger logger = LoggerFactory.getLogger(GovRegistryServerHandler.class); +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-core/src/main/resources/gov-registry.sql ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-core/src/main/resources/gov-registry.sql b/airavata-gov-registry/airavata-gov-registry-core/src/main/resources/gov-registry.sql new file mode 100644 index 0000000..239ecde --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-core/src/main/resources/gov-registry.sql @@ -0,0 +1,116 @@ +/* + * + * 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. + * +*/ + +CREATE TABLE DOMAIN ( + DOMAIN_ID VARCHAR(255), + NAME VARCHAR(255), + DESCRIPTION VARCHAR(255), + CREATED_TIME LONG, + UPDATED_TIME LONG, + PRIMARY KEY (DOMAIN_ID) +); + +CREATE TABLE USER ( + USER_ID VARCHAR(255), + DOMAIN_ID VARCHAR(255), + USER_NAME VARCHAR(255), + CREATED_TIME LONG, + UPDATED_TIME LONG, + PRIMARY KEY (USER_ID), + FOREIGN KEY (DOMAIN_ID) REFERENCES DOMAIN(DOMAIN_ID) +); + +CREATE TABLE USER_GROUP ( + GROUP_ID VARCHAR(255), + DOMAIN_ID VARCHAR(255), + NAME VARCHAR(255), + DESCRIPTION VARCHAR(255), + OWNER_ID VARCHAR(255), + TYPE VARCHAR(255), + CREATED_TIME LONG, + UPDATED_TIME LONG, + PRIMARY KEY (GROUP_ID), + FOREIGN KEY (DOMAIN_ID) REFERENCES DOMAIN(DOMAIN_ID), + FOREIGN KEY (OWNER_ID) REFERENCES USER(USER_ID) +); + + +CREATE TABLE GROUP_MEMBERSHIP ( + PARENT_ID VARCHAR(255), + CHILD_ID VARCHAR(255), + CHILD_TYPE VARCHAR(255), + PRIMARY KEY (PARENT_ID, CHILD_ID), + FOREIGN KEY (PARENT_ID) REFERENCES USER_GROUP(GROUP_ID), + FOREIGN KEY (CHILD_ID) REFERENCES USER_GROUP(GROUP_ID) +); + +CREATE TABLE ENTITY_TYPE ( + ENTITY_TYPE_ID VARCHAR(255), + DOMAIN_ID VARCHAR(255), + NAME VARCHAR(255), + DESCRIPTION VARCHAR(255), + CREATED_TIME LONG, + UPDATED_TIME LONG, + PRIMARY KEY (ENTITY_TYPE_ID), + FOREIGN KEY (DOMAIN_ID) REFERENCES DOMAIN(DOMAIN_ID) +); + +CREATE TABLE PERMISSION_TYPE ( + PERMISSION_TYPE_ID VARCHAR(255), + DOMAIN_ID VARCHAR(255), + NAME VARCHAR(255), + CREATED_TIME LONG, + UPDATED_TIME LONG, + PRIMARY KEY (PERMISSION_TYPE_ID), + FOREIGN KEY (DOMAIN_ID) REFERENCES DOMAIN(DOMAIN_ID) +); + +CREATE TABLE ENTITY ( + ENTITY_ID VARCHAR(255), + DOMAIN_ID VARCHAR(255), + ENITY_TYPE VARCHAR(255), + OWNER_ID VARCHAR(255), + PARENT_ENTITY_TYPE VARCHAR(255), + PARENT_ENTITY_ID VARCHAR(255), + NAME VARCHAR(255), + DESCRIPTION VARCHAR(255), + METADATA BLOB, + FULL_TEXT TEXT, + CREATED_TIME LONG, + UPDATED_TIME LONG, + PRIMARY KEY (ENTITY_ID), + FOREIGN KEY (DOMAIN_ID) REFERENCES DOMAIN(DOMAIN_ID), + FOREIGN KEY (ENITY_TYPE) REFERENCES ENTITY_TYPE(ENTITY_TYPE_ID), + FOREIGN KEY (OWNER_ID) REFERENCES USER(USER_ID), + FOREIGN KEY (PARENT_ENTITY_TYPE) REFERENCES ENTITY_TYPE(ENTITY_TYPE_ID), + FOREIGN KEY (PARENT_ENTITY_ID) REFERENCES ENTITY(ENTITY_ID) +); + +CREATE TABLE SHARING ( + PERMISSION_TYPE_ID VARCHAR(255), + ENTITY_TYPE_ID VARCHAR(255), + ENTITY_ID VARCHAR(255), + GROUP_ID VARCHAR(255), + PRIMARY KEY (PERMISSION_TYPE_ID, ENTITY_ID, GROUP_ID), + FOREIGN KEY (PERMISSION_TYPE_ID) REFERENCES PERMISSION_TYPE(PERMISSION_TYPE_ID), + FOREIGN KEY (ENTITY_TYPE_ID) REFERENCES ENTITY_TYPE(ENTITY_TYPE_ID), + FOREIGN KEY (GROUP_ID) REFERENCES USER_GROUP(GROUP_ID) +) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/920f55b1/airavata-gov-registry/airavata-gov-registry-stubs/pom.xml ---------------------------------------------------------------------- diff --git a/airavata-gov-registry/airavata-gov-registry-stubs/pom.xml b/airavata-gov-registry/airavata-gov-registry-stubs/pom.xml new file mode 100644 index 0000000..72ec866 --- /dev/null +++ b/airavata-gov-registry/airavata-gov-registry-stubs/pom.xml @@ -0,0 +1,16 @@ +<?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>gov-registry</artifactId> + <groupId>org.apache.airavata</groupId> + <relativePath>../pom.xml</relativePath> + <version>${global.version}</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>airavata-gov-registry-stubs</artifactId> + + +</project> \ No newline at end of file