Skip to content

Commit

Permalink
Removed the dvobjectConatainerTable #1545, added creators to DvObjects (
Browse files Browse the repository at this point in the history
  • Loading branch information
michbarsinai committed Mar 2, 2015
1 parent 13a7fea commit 18e84f1
Show file tree
Hide file tree
Showing 14 changed files with 159 additions and 174 deletions.
2 changes: 2 additions & 0 deletions src/main/java/Bundle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,7 @@ dataverse.delete.success=Your dataverse has been deleted.
dataverse.delete.failure=This dataverse was not able to be deleted.
dataverse.create.success=You have successfully created your dataverse! To learn more about what you can do with your dataverse, check out the <a href='http://guides.dataverse.org/en/latest/user/dataverse-management.html'>User Guide</a>.
dataverse.create.failure=This dataverse was not able to be created.
dataverse.create.authenticatedUsersOnly=Only authenticated users can create dataverses.
dataverse.update.success=You have successfully updated your dataverse!
dataverse.update.failure=This dataverse was not able to be updated.

Expand Down Expand Up @@ -596,6 +597,7 @@ dataset.cite.whyCite.tip=If you use these data, please add this citation to your
dataset.cite.downloadBtn=Download Citation
dataset.cite.downloadBtn.xml=EndNote XML
dataset.cite.downloadBtn.ris=RIS Format
dataset.create.authenticatedUsersOnly=Only authenticated users can create datasets.
dataset.deaccession.reason=Deaccession Reason:
dataset.beAccessedAt=The dataset can now be accessed at:
dataset.keywordDisplay.title=Keyword
Expand Down
27 changes: 16 additions & 11 deletions src/main/java/edu/harvard/iq/dataverse/DataFileServiceBean.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@
import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
import edu.harvard.iq.dataverse.authorization.users.GuestUser;
import edu.harvard.iq.dataverse.dataaccess.ImageThumbConverter;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.ejb.Stateless;
Expand Down Expand Up @@ -135,16 +137,20 @@ public List<DataFile> findByDatasetId(Long studyId) {
Sure, we don't have *studies* any more, in 4.0; it's a tribute
to the past. -- L.A.
*/
Query query = em.createQuery("select object(o) from DataFile as o where o.dataset.id =:studyId order by o.id");
Query query = em.createQuery("select o from DataFile o where o.owner.id = :studyId order by o.id");
query.setParameter("studyId", studyId);
return query.getResultList();
}

public List<DataFile> findIngestsInProgress() {
Query query = em.createQuery("select object(o) from DataFile as o where o.ingestStatus =:scheduledStatusCode or o.ingestStatus =:progressStatusCode order by o.id");
query.setParameter("scheduledStatusCode", DataFile.INGEST_STATUS_SCHEDULED);
query.setParameter("progressStatusCode", DataFile.INGEST_STATUS_INPROGRESS);
return query.getResultList();
if ( em.isOpen() ) {
Query query = em.createQuery("select object(o) from DataFile as o where o.ingestStatus =:scheduledStatusCode or o.ingestStatus =:progressStatusCode order by o.id");
query.setParameter("scheduledStatusCode", DataFile.INGEST_STATUS_SCHEDULED);
query.setParameter("progressStatusCode", DataFile.INGEST_STATUS_INPROGRESS);
return query.getResultList();
} else {
return Collections.emptyList();
}
}

public DataTable findDataTableByFileId(Long fileId) {
Expand Down Expand Up @@ -181,25 +187,24 @@ public void generateStorageIdentifier(DataFile dataFile) {
}

public String generateStorageIdentifier() {
String storageIdentifier = null;

UUID uid = UUID.randomUUID();

logger.fine("UUID value: "+uid.toString());
logger.log(Level.FINE, "UUID value: {0}", uid.toString());

// last 6 bytes, of the random UUID, in hex:

String hexRandom = uid.toString().substring(24);

logger.fine("UUID (last 6 bytes, 12 hex digits): "+hexRandom);
logger.log(Level.FINE, "UUID (last 6 bytes, 12 hex digits): {0}", hexRandom);

String hexTimestamp = Long.toHexString(new Date().getTime());

logger.fine("(not UUID) timestamp in hex: "+hexTimestamp);
logger.log(Level.FINE, "(not UUID) timestamp in hex: {0}", hexTimestamp);

storageIdentifier = hexTimestamp + "-" + hexRandom;
String storageIdentifier = hexTimestamp + "-" + hexRandom;

logger.fine("timestamp/UUID hybrid: "+storageIdentifier);
logger.log(Level.FINE, "timestamp/UUID hybrid: {0}", storageIdentifier);
return storageIdentifier;
}

Expand Down
29 changes: 14 additions & 15 deletions src/main/java/edu/harvard/iq/dataverse/DatasetPage.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.harvard.iq.dataverse;

import edu.harvard.iq.dataverse.authorization.AuthenticationServiceBean;
import edu.harvard.iq.dataverse.authorization.Permission;
import edu.harvard.iq.dataverse.authorization.providers.builtin.BuiltinUser;
import edu.harvard.iq.dataverse.authorization.providers.builtin.BuiltinUserServiceBean;
import edu.harvard.iq.dataverse.authorization.users.ApiToken;
import edu.harvard.iq.dataverse.authorization.users.User;
Expand Down Expand Up @@ -1333,7 +1327,7 @@ public String save() {
*/
try {
Long idToRemove = fmd.getId(); ///dfn.getId();
logger.info("deleting file, filemetadata id " + idToRemove);
logger.log(Level.INFO, "deleting file, filemetadata id {0}", idToRemove);

// finally, check if this file is being used as the default thumbnail
// for its dataset:
Expand Down Expand Up @@ -1390,8 +1384,13 @@ public String save() {
try {
if (editMode == EditMode.CREATE) {
workingVersion.setLicense(DatasetVersion.License.CC0);
if(selectedTemplate != null){
cmd = new CreateDatasetCommand(dataset, session.getUser(), false, null, selectedTemplate);
if ( selectedTemplate != null ) {
if ( session.getUser().isAuthenticated() ) {
cmd = new CreateDatasetCommand(dataset, (AuthenticatedUser) session.getUser(), false, null, selectedTemplate);
} else {
JH.addMessage(FacesMessage.SEVERITY_FATAL, JH.localize("dataset.create.authenticatedUsersOnly"));
return null;
}
} else {
cmd = new CreateDatasetCommand(dataset, session.getUser());
}
Expand All @@ -1407,15 +1406,15 @@ public String save() {
}
} catch (EJBException ex) {
StringBuilder error = new StringBuilder();
error.append(ex + " ");
error.append(ex.getMessage() + " ");
error.append(ex).append(" ");
error.append(ex.getMessage()).append(" ");
Throwable cause = ex;
while (cause.getCause() != null) {
while (cause.getCause()!= null) {
cause = cause.getCause();
error.append(cause + " ");
error.append(cause.getMessage() + " ");
error.append(cause).append(" ");
error.append(cause.getMessage()).append(" ");
}
logger.fine("Couldn't save dataset: " + error.toString());
logger.log(Level.FINE, "Couldn''t save dataset: {0}", error.toString());
populateDatasetUpdateFailureMessage();
return null;
} catch (CommandException ex) {
Expand Down
16 changes: 8 additions & 8 deletions src/main/java/edu/harvard/iq/dataverse/DataversePage.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.harvard.iq.dataverse;

import edu.harvard.iq.dataverse.UserNotification.Type;
Expand Down Expand Up @@ -514,9 +509,14 @@ public String save(String message) {
//TODO change to Create - for now the page is expecting INFO instead.
Boolean create;
if (dataverse.getId() == null) {
dataverse.setOwner(ownerId != null ? dataverseService.find(ownerId) : null);
create = Boolean.TRUE;
cmd = new CreateDataverseCommand(dataverse, session.getUser(), facets.getTarget(), listDFTIL);
if ( session.getUser().isAuthenticated() ) {
dataverse.setOwner(ownerId != null ? dataverseService.find(ownerId) : null);
create = Boolean.TRUE;
cmd = new CreateDataverseCommand(dataverse, (AuthenticatedUser) session.getUser(), facets.getTarget(), listDFTIL);
} else {
JH.addMessage(FacesMessage.SEVERITY_FATAL, JH.localize("dataverse.create.authenticatedUsersOnly"));
return null;
}
} else {
create=Boolean.FALSE;
cmd = new UpdateDataverseCommand(dataverse, facets.getTarget(), featuredDataverses.getTarget(), session.getUser(), listDFTIL);
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/edu/harvard/iq/dataverse/DvObject.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public String visit(DataFile df) {
private Long id;

@ManyToOne(cascade = CascadeType.MERGE)
private DvObjectContainer owner;
private DvObject owner;

private Timestamp publicationDate;

Expand Down Expand Up @@ -85,6 +85,7 @@ public Timestamp getModificationTime() {
/**
* modificationTime is used for comparison with indexTime so we know if the
* Solr index is stale.
* @param modificationTime
*/
public void setModificationTime(Timestamp modificationTime) {
this.modificationTime = modificationTime;
Expand All @@ -97,6 +98,7 @@ public Timestamp getIndexTime() {
/**
* indexTime is used for comparison with modificationTime so we know if the
* Solr index is stale.
* @param indexTime
*/
public void setIndexTime(Timestamp indexTime) {
this.indexTime = indexTime;
Expand All @@ -123,7 +125,7 @@ protected void setOwner(DvObjectContainer newOwner) {
}

public DvObjectContainer getOwner() {
return owner;
return (DvObjectContainer)owner;
}

public Long getId() {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/edu/harvard/iq/dataverse/DvObjectContainer.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package edu.harvard.iq.dataverse;

import javax.persistence.Entity;
import javax.persistence.MappedSuperclass;

/**
* A {@link DvObject} that can contain other {@link DvObject}s.
*
* @author michael
*/
@Entity
@MappedSuperclass
public abstract class DvObjectContainer extends DvObject {

public void setOwner(Dataverse owner) {
Expand Down
5 changes: 2 additions & 3 deletions src/main/java/edu/harvard/iq/dataverse/api/BatchImport.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,12 @@

import edu.harvard.iq.dataverse.api.imports.ImportException;
import edu.harvard.iq.dataverse.api.imports.ImportUtil.ImportType;
import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
import edu.harvard.iq.dataverse.authorization.users.User;
import edu.harvard.iq.dataverse.settings.SettingsServiceBean;
import edu.harvard.iq.dataverse.util.ImportLogger;
import java.io.IOException;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.json.JsonObjectBuilder;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
Expand Down Expand Up @@ -107,7 +106,7 @@ public Response getImport(@QueryParam("path") String fileDir, @QueryParam("ident

private Response startBatchJob( String fileDir, String parentIdtf, String apiKey, ImportType importType) {

User u = findUserByApiToken(apiKey);
AuthenticatedUser u = findUserByApiToken(apiKey);
if (u == null) {
return badApiKey(apiKey);
}
Expand Down
12 changes: 3 additions & 9 deletions src/main/java/edu/harvard/iq/dataverse/api/BatchServiceBean.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.harvard.iq.dataverse.api;

import edu.harvard.iq.dataverse.Dataverse;
import edu.harvard.iq.dataverse.DataverseServiceBean;
import edu.harvard.iq.dataverse.api.imports.ImportException;
import edu.harvard.iq.dataverse.api.imports.ImportUtil;
import edu.harvard.iq.dataverse.authorization.users.User;
import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
import edu.harvard.iq.dataverse.util.ImportLogger;
import java.io.File;
import java.io.IOException;
import javax.ejb.Asynchronous;
import javax.ejb.EJB;
import javax.ejb.Stateless;
Expand All @@ -35,7 +29,7 @@ public class BatchServiceBean {
ImportLogger importLogger;

@Asynchronous
public void processFilePath(String fileDir, String parentIdtf, User u, Dataverse owner, ImportUtil.ImportType importType) throws ImportException {
public void processFilePath(String fileDir, String parentIdtf, AuthenticatedUser u, Dataverse owner, ImportUtil.ImportType importType) throws ImportException {
importLogger.getLogger().info("BEGIN IMPORT");
JsonArrayBuilder status = Json.createArrayBuilder();

Expand All @@ -59,7 +53,7 @@ public void processFilePath(String fileDir, String parentIdtf, User u, Dataverse

}

public JsonArrayBuilder handleDirectory(User u, File dir, ImportUtil.ImportType importType) throws ImportException{
public JsonArrayBuilder handleDirectory(AuthenticatedUser u, File dir, ImportUtil.ImportType importType) throws ImportException{
JsonArrayBuilder status = Json.createArrayBuilder();
Dataverse owner = dataverseService.findByAlias(dir.getName());
if (owner == null) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/edu/harvard/iq/dataverse/api/Dataverses.java
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ public Response addDataverse( String body, @PathParam("identifier") String paren
dc.setDataverse(d);
}

User u = findUserOrDie( apiKey );
AuthenticatedUser u = findUserOrDie( apiKey );
d = execCommand( new CreateDataverseCommand(d, u, null, null), "Creating Dataverse" );
return createdResponse( "/dvs/"+d.getAlias(), json(d) );
} catch ( WrappedResponse ww ) {
Expand Down
Loading

0 comments on commit 18e84f1

Please sign in to comment.