From ce31f79941b179e20b6bfe405ae0fbd1a7925398 Mon Sep 17 00:00:00 2001 From: Michael Ritter Date: Mon, 14 Nov 2016 12:31:14 -0500 Subject: [PATCH 1/6] Fix index of parameter value --- .../ace/monitor/reporting/SummaryGenerator.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ace-am/src/main/java/edu/umiacs/ace/monitor/reporting/SummaryGenerator.java b/ace-am/src/main/java/edu/umiacs/ace/monitor/reporting/SummaryGenerator.java index 575c339..72ac788 100644 --- a/ace-am/src/main/java/edu/umiacs/ace/monitor/reporting/SummaryGenerator.java +++ b/ace-am/src/main/java/edu/umiacs/ace/monitor/reporting/SummaryGenerator.java @@ -31,12 +31,17 @@ package edu.umiacs.ace.monitor.reporting; -import edu.umiacs.ace.monitor.log.*; -import edu.umiacs.ace.util.PersistUtil; import edu.umiacs.ace.monitor.core.Collection; +import edu.umiacs.ace.monitor.log.LogEnum; +import edu.umiacs.ace.util.PersistUtil; import edu.umiacs.sql.SQL; import edu.umiacs.util.Argument; import edu.umiacs.util.Strings; +import org.apache.log4j.Logger; + +import javax.persistence.EntityManager; +import javax.persistence.EntityTransaction; +import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -45,10 +50,6 @@ import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; import java.util.List; -import javax.persistence.EntityManager; -import javax.persistence.EntityTransaction; -import javax.sql.DataSource; -import org.apache.log4j.Logger; /** * Log summary generator, this will generate a report summarizing all log entries @@ -168,7 +169,7 @@ public class SummaryGenerator extends ReportItemTypes { + "MIN(logevent.ID), logevent.LOGTYPE, count(logevent.LOGTYPE)" + "FROM logevent WHERE logevent.COLLECTION_ID = ? " + "GROUP BY logevent.LOGTYPE"); - ps.setLong(2, collection.getId()); + ps.setLong(1, collection.getId()); } // create entries for each result, for start date and session id -- GitLab From 2f2d3d82ef24677a465b73859397240b795b5211 Mon Sep 17 00:00:00 2001 From: Michael Ritter Date: Mon, 14 Nov 2016 12:31:23 -0500 Subject: [PATCH 2/6] Use correct logger --- .../src/main/java/edu/umiacs/ace/rest/SettingsManagement.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ace-am/src/main/java/edu/umiacs/ace/rest/SettingsManagement.java b/ace-am/src/main/java/edu/umiacs/ace/rest/SettingsManagement.java index 3fcd0fa..bba44d3 100644 --- a/ace-am/src/main/java/edu/umiacs/ace/rest/SettingsManagement.java +++ b/ace-am/src/main/java/edu/umiacs/ace/rest/SettingsManagement.java @@ -4,10 +4,11 @@ */ package edu.umiacs.ace.rest; -import com.sun.istack.logging.Logger; import edu.umiacs.ace.driver.irods.IrodsSetting; import edu.umiacs.ace.monitor.core.Collection; import edu.umiacs.ace.util.PersistUtil; +import org.apache.log4j.Logger; + import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import javax.persistence.NoResultException; -- GitLab From 16fb0803ed8e05fe1c9a351704024ce0c3d877b9 Mon Sep 17 00:00:00 2001 From: Michael Ritter Date: Mon, 14 Nov 2016 12:32:49 -0500 Subject: [PATCH 3/6] Code cleanup --- .../ace/monitor/core/MonitoredItemManager.java | 13 +++++++------ .../src/main/java/edu/umiacs/ace/util/KSFuture.java | 1 + .../edu/umiacs/ace/hashtree/HashTreeBuilder.java | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ace-am/src/main/java/edu/umiacs/ace/monitor/core/MonitoredItemManager.java b/ace-am/src/main/java/edu/umiacs/ace/monitor/core/MonitoredItemManager.java index 8368180..3570d32 100644 --- a/ace-am/src/main/java/edu/umiacs/ace/monitor/core/MonitoredItemManager.java +++ b/ace-am/src/main/java/edu/umiacs/ace/monitor/core/MonitoredItemManager.java @@ -34,6 +34,11 @@ package edu.umiacs.ace.monitor.core; import edu.umiacs.ace.monitor.log.LogEnum; import edu.umiacs.ace.monitor.log.LogEventManager; import edu.umiacs.ace.util.PersistUtil; +import org.apache.log4j.Logger; + +import javax.persistence.EntityManager; +import javax.persistence.EntityTransaction; +import javax.persistence.Query; import java.util.Collections; import java.util.Comparator; import java.util.Date; @@ -42,10 +47,6 @@ import java.util.List; import java.util.Set; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -import javax.persistence.EntityManager; -import javax.persistence.EntityTransaction; -import javax.persistence.Query; -import org.apache.log4j.Logger; /** * @@ -58,13 +59,13 @@ public class MonitoredItemManager { MonitoredItemManager.class); EntityManager em; // TODO: This may leak... - private Set existingParents = new HashSet(); + private Set existingParents = new HashSet<>(); public MonitoredItemManager( EntityManager em ) { this.em = em; } - public List listItemsBefore( Collection c, Date d ) { + public Iterable listItemsBefore( Collection c, Date d ) { lock.lock(); try { diff --git a/ace-am/src/main/java/edu/umiacs/ace/util/KSFuture.java b/ace-am/src/main/java/edu/umiacs/ace/util/KSFuture.java index 5ad819d..c62abab 100644 --- a/ace-am/src/main/java/edu/umiacs/ace/util/KSFuture.java +++ b/ace-am/src/main/java/edu/umiacs/ace/util/KSFuture.java @@ -49,6 +49,7 @@ public class KSFuture extends KnownFuture> { Submittable result = getKnownResult(); beforeExecute(result); super.run(); + // TODO: Check exception and print if true? afterExecute(result); } diff --git a/ace-common/src/main/java/edu/umiacs/ace/hashtree/HashTreeBuilder.java b/ace-common/src/main/java/edu/umiacs/ace/hashtree/HashTreeBuilder.java index 1ad4a43..38f019b 100644 --- a/ace-common/src/main/java/edu/umiacs/ace/hashtree/HashTreeBuilder.java +++ b/ace-common/src/main/java/edu/umiacs/ace/hashtree/HashTreeBuilder.java @@ -254,7 +254,7 @@ public final class HashTreeBuilder { // Find out how many nodes are going to be in the parent level int parentNodeCount = size / order; List parentLevel = - new ArrayList(parentNodeCount); + new ArrayList<>(parentNodeCount); // Index for iterating through the nodes in this level int iterIndex = 0; @@ -290,7 +290,7 @@ public final class HashTreeBuilder { // Construct the parent node List childrenNodes = - new ArrayList(childrenNodeCount); + new ArrayList<>(childrenNodeCount); HashTree.Node parentNode = new HashTree.Node(); for ( int i = iterIndex, childIndex = 0; -- GitLab From 8022b48a281574a2cea3911bda48f1188d24c6c6 Mon Sep 17 00:00:00 2001 From: Michael Ritter Date: Fri, 11 Nov 2016 16:56:39 -0500 Subject: [PATCH 4/6] Endpoint for querying collections --- .../edu/umiacs/ace/rest/ListController.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/ace-am/src/main/java/edu/umiacs/ace/rest/ListController.java b/ace-am/src/main/java/edu/umiacs/ace/rest/ListController.java index ba9b11a..afd2e55 100644 --- a/ace-am/src/main/java/edu/umiacs/ace/rest/ListController.java +++ b/ace-am/src/main/java/edu/umiacs/ace/rest/ListController.java @@ -5,15 +5,21 @@ import edu.umiacs.ace.util.PersistUtil; import javax.persistence.EntityManager; import javax.persistence.Query; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import java.util.ArrayList; import java.util.List; /** + * Get a listing of groups/collections in ACE + * * Created by shake on 10/22/14. */ @Path("/") @@ -75,4 +81,31 @@ public class ListController { return groupless; } + /** + * New API method to get all collections with query parameters + * + * @return + */ + @GET + @Path("collections") + @Produces(MediaType.APPLICATION_JSON) + public List getCollections(@QueryParam("group") String group, + @QueryParam("active") Boolean active, + @QueryParam("corrupt") Boolean corrupt) { + EntityManager entityManager = PersistUtil.getEntityManager(); + CriteriaBuilder cb = entityManager.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(Collection.class); + Root coll = cq.from(Collection.class); + cq.select(coll); + if (active != null && active) { + cq.where(cb.equal(coll.get("state"), 'A')); + } + + if (corrupt != null && corrupt) { + cq.where(cb.equal(coll.get("state"), 'E')); + } + + return entityManager.createQuery(cq).getResultList(); + } + } -- GitLab From b54cbf636e95dca15bd800735aed05b1ea90a772 Mon Sep 17 00:00:00 2001 From: Michael Ritter Date: Fri, 11 Nov 2016 17:00:49 -0500 Subject: [PATCH 5/6] Fields for debugging --- ace-am/src/main/resources/META-INF/persistence.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ace-am/src/main/resources/META-INF/persistence.xml b/ace-am/src/main/resources/META-INF/persistence.xml index ff2ccf4..52e93a2 100644 --- a/ace-am/src/main/resources/META-INF/persistence.xml +++ b/ace-am/src/main/resources/META-INF/persistence.xml @@ -23,6 +23,9 @@ true + + +