Mercurial > hg > LGDataverses
view src/main/java/edu/harvard/iq/dataverse/SuperUserPage.java @ 14:be7787c36e58 default tip
new: nofity LGSercies for deleted files
| author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
|---|---|
| date | Mon, 02 Nov 2015 16:41:23 +0100 |
| parents | a50cf11e5178 |
| children |
line wrap: on
line source
package edu.harvard.iq.dataverse; import edu.harvard.iq.dataverse.authorization.users.User; import edu.harvard.iq.dataverse.search.IndexAllServiceBean; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import javax.ejb.EJB; import javax.enterprise.context.SessionScoped; import javax.inject.Inject; import javax.inject.Named; import javax.json.JsonObjectBuilder; @SessionScoped @Named("SuperUserPage") public class SuperUserPage implements java.io.Serializable { @Inject DataverseSession session; @EJB IndexServiceBean indexService; @EJB IndexAllServiceBean indexAllService; private String indexAllStatus = "No status available"; private Future<JsonObjectBuilder> indexAllFuture; // modeled off http://docs.oracle.com/javaee/7/tutorial/ejb-async002.htm public String getIndexAllStatus() { if (indexAllFuture != null) { if (indexAllFuture.isDone()) { try { JsonObjectBuilder status = indexAllFuture.get(); indexAllStatus = status.build().toString(); } catch (ExecutionException | CancellationException | InterruptedException ex) { indexAllStatus = ex.getCause().toString(); } } else { indexAllStatus = "Index all is running..."; } } return indexAllStatus; } public void startIndexAll() { User user = session.getUser(); if (user.isSuperuser()) { long numPartitions = 1; long partitionId = 0; boolean previewOnly = false; indexAllFuture = indexAllService.indexAllOrSubset(numPartitions, partitionId, false, previewOnly); indexAllStatus = "Index all started..."; } else { indexAllStatus = "Only a superuser can run index all"; } } public void updateIndexAllStatus() { getIndexAllStatus(); } }
