You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2017/04/20 18:01:21 UTC

airavata git commit: search Data Products By Name in replica catalog

Repository: airavata
Updated Branches:
  refs/heads/develop 6c38ebb3e -> 2afa065f9


search Data Products By Name in replica catalog


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/2afa065f
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/2afa065f
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/2afa065f

Branch: refs/heads/develop
Commit: 2afa065f964a430b9c626e1da7b1d5a0ff8cf5d0
Parents: 6c38ebb
Author: scnakandala <su...@gmail.com>
Authored: Thu Apr 20 14:01:17 2017 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Thu Apr 20 14:01:17 2017 -0400

----------------------------------------------------------------------
 .../catalog/impl/ReplicaCatalogImpl.java        | 44 ++++++++++++++++++++
 .../replica/catalog/ReplicaCatalogTest.java     |  2 +
 .../airavata/registry/cpi/ReplicaCatalog.java   |  3 ++
 3 files changed, 49 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/2afa065f/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/impl/ReplicaCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/impl/ReplicaCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/impl/ReplicaCatalogImpl.java
index c35a3bd..e27e27a 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/impl/ReplicaCatalogImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/impl/ReplicaCatalogImpl.java
@@ -34,6 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.persistence.EntityManager;
+import javax.persistence.Query;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -363,4 +364,47 @@ public class ReplicaCatalogImpl implements ReplicaCatalog {
             }
         }
     }
+
+    @Override
+    public List<DataProductModel> searchDataProductsByName(String gatewayId, String userId, String productName, int limit, int offset) throws ReplicaCatalogException {
+        EntityManager em = null;
+        try {
+            String query = "SELECT dp FROM DataProduct dp " +
+                    "WHERE dp.gatewayId = '" + gatewayId + "' AND dp.ownerName='" + userId + "' AND dp.productName LIKE '%"
+                    + productName + "%' ORDER BY dp.creationTime DESC";
+
+
+            em = ReplicaCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+
+            //pagination
+            if (offset >= 0 && limit >= 0) {
+                q = em.createQuery(query).setFirstResult(offset).setMaxResults(limit);
+            } else {
+                q = em.createQuery(query);
+            }
+
+            ArrayList<DataProductModel> returnModels = new ArrayList<>();
+            List resultList = q.getResultList();
+            for (Object o : resultList) {
+                DataProduct dataProduct = (DataProduct) o;
+                returnModels.add(ThriftDataModelConversion.getDataProductModel(dataProduct));
+            }
+            em.getTransaction().commit();
+            em.close();
+            return returnModels;
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.error(e.getMessage(), e);
+            throw new ReplicaCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/2afa065f/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/ReplicaCatalogTest.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/ReplicaCatalogTest.java b/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/ReplicaCatalogTest.java
index a2e2abf..62e8736 100644
--- a/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/ReplicaCatalogTest.java
+++ b/modules/registry/registry-core/src/test/java/org/apache/airavata/replica/catalog/ReplicaCatalogTest.java
@@ -82,6 +82,8 @@ public class ReplicaCatalogTest {
             String productUri = replicacatalog.registerDataProduct(dataProductModel);
             org.junit.Assert.assertNotNull(productUri);
             dataProductModel = replicacatalog.getDataProduct(productUri);
+            Assert.assertTrue(replicacatalog.searchDataProductsByName(dataProductModel.getGatewayId(), dataProductModel.getOwnerName(),
+                    dataProductModel.getProductName().substring(1, 5), -1, 0).size() == 1);
             Assert.assertNotNull(dataProductModel);
             boolean result = replicacatalog.removeDataProduct(productUri);
             Assert.assertTrue(result);

http://git-wip-us.apache.org/repos/asf/airavata/blob/2afa065f/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalog.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalog.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalog.java
index 9db6dc6..df888a9 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalog.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ReplicaCatalog.java
@@ -51,4 +51,7 @@ public interface ReplicaCatalog {
     DataProductModel getParentDataProduct(String productUri) throws ReplicaCatalogException;
 
     List<DataProductModel> getChildDataProducts(String productUri) throws ReplicaCatalogException;
+
+    List<DataProductModel> searchDataProductsByName(String gatewayId, String userId, String productName,
+                                                    int limit, int offset) throws ReplicaCatalogException;
 }