mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-13 04:53:16 +00:00
REST writeStats to reuse existing context
This commit is contained in:
@@ -101,7 +101,7 @@ public class BitstreamResource extends Resource
|
||||
org.dspace.content.Bitstream dspaceBitstream = findBitstream(context, bitstreamId, org.dspace.core.Constants.READ);
|
||||
|
||||
writeStats(dspaceBitstream, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers,
|
||||
request);
|
||||
request, context);
|
||||
|
||||
bitstream = new Bitstream(dspaceBitstream, expand);
|
||||
context.complete();
|
||||
@@ -241,7 +241,7 @@ public class BitstreamResource extends Resource
|
||||
// reading under administrator permissions
|
||||
bitstreams.add(new Bitstream(dspaceBitstreams[i], expand));
|
||||
writeStats(dspaceBitstreams[i], UsageEvent.Action.VIEW, user_ip, user_agent,
|
||||
xforwarderfor, headers, request);
|
||||
xforwarderfor, headers, request, context);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -308,7 +308,7 @@ public class BitstreamResource extends Resource
|
||||
org.dspace.content.Bitstream dspaceBitstream = findBitstream(context, bitstreamId, org.dspace.core.Constants.READ);
|
||||
|
||||
writeStats(dspaceBitstream, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers,
|
||||
request);
|
||||
request, context);
|
||||
|
||||
log.trace("Bitsream(id=" + bitstreamId + ") data was successfully read.");
|
||||
inputStream = dspaceBitstream.retrieve();
|
||||
@@ -463,7 +463,7 @@ public class BitstreamResource extends Resource
|
||||
org.dspace.content.Bitstream dspaceBitstream = findBitstream(context, bitstreamId, org.dspace.core.Constants.WRITE);
|
||||
|
||||
writeStats(dspaceBitstream, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
log.trace("Updating bitstream metadata.");
|
||||
dspaceBitstream.setDescription(bitstream.getDescription());
|
||||
@@ -594,7 +594,7 @@ public class BitstreamResource extends Resource
|
||||
org.dspace.content.Bitstream dspaceBitstream = findBitstream(context, bitstreamId, org.dspace.core.Constants.WRITE);
|
||||
|
||||
writeStats(dspaceBitstream, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
log.trace("Creating new bitstream.");
|
||||
int newBitstreamId = BitstreamStorageManager.store(context, is);
|
||||
@@ -678,7 +678,7 @@ public class BitstreamResource extends Resource
|
||||
org.dspace.content.Bitstream dspaceBitstream = findBitstream(context, bitstreamId, org.dspace.core.Constants.DELETE);
|
||||
|
||||
writeStats(dspaceBitstream, UsageEvent.Action.DELETE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
log.trace("Deleting bitstream from all bundles.");
|
||||
for (org.dspace.content.Bundle bundle : dspaceBitstream.getBundles())
|
||||
|
@@ -99,7 +99,7 @@ public class CollectionsResource extends Resource
|
||||
|
||||
org.dspace.content.Collection dspaceCollection = findCollection(context, collectionId, org.dspace.core.Constants.READ);
|
||||
writeStats(dspaceCollection, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
collection = new Collection(dspaceCollection, expand, context, limit, offset);
|
||||
context.complete();
|
||||
@@ -182,7 +182,7 @@ public class CollectionsResource extends Resource
|
||||
offset);
|
||||
collections.add(collection);
|
||||
writeStats(dspaceCollection, UsageEvent.Action.VIEW, user_ip, user_agent,
|
||||
xforwarderfor, headers, request);
|
||||
xforwarderfor, headers, request, context);
|
||||
}
|
||||
}
|
||||
context.complete();
|
||||
@@ -254,7 +254,7 @@ public class CollectionsResource extends Resource
|
||||
|
||||
org.dspace.content.Collection dspaceCollection = findCollection(context, collectionId, org.dspace.core.Constants.READ);
|
||||
writeStats(dspaceCollection, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
items = new ArrayList<Item>();
|
||||
org.dspace.content.ItemIterator dspaceItems = dspaceCollection.getItems();
|
||||
@@ -267,7 +267,7 @@ public class CollectionsResource extends Resource
|
||||
{
|
||||
items.add(new Item(dspaceItem, expand, context));
|
||||
writeStats(dspaceItem, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -335,7 +335,7 @@ public class CollectionsResource extends Resource
|
||||
org.dspace.core.Constants.WRITE);
|
||||
|
||||
writeStats(dspaceCollection, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
log.trace("Creating item in collection(id=" + collectionId + ").");
|
||||
org.dspace.content.WorkspaceItem workspaceItem = org.dspace.content.WorkspaceItem.create(context, dspaceCollection,
|
||||
@@ -435,7 +435,7 @@ public class CollectionsResource extends Resource
|
||||
org.dspace.core.Constants.WRITE);
|
||||
|
||||
writeStats(dspaceCollection, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
dspaceCollection.setMetadata("name", collection.getName());
|
||||
dspaceCollection.setLicense(collection.getLicense());
|
||||
@@ -451,7 +451,7 @@ public class CollectionsResource extends Resource
|
||||
}
|
||||
catch (ContextException e)
|
||||
{
|
||||
processException("Could not update collection(id=" + collectionId + "), ContextEception. Message: " + e.getMessage(),
|
||||
processException("Could not update collection(id=" + collectionId + "), ContextException. Message: " + e.getMessage(),
|
||||
context);
|
||||
}
|
||||
catch (SQLException e)
|
||||
@@ -507,7 +507,7 @@ public class CollectionsResource extends Resource
|
||||
org.dspace.core.Constants.DELETE);
|
||||
|
||||
writeStats(dspaceCollection, UsageEvent.Action.REMOVE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
org.dspace.content.Community community = (org.dspace.content.Community) dspaceCollection.getParentObject();
|
||||
community.removeCollection(dspaceCollection);
|
||||
@@ -610,8 +610,8 @@ public class CollectionsResource extends Resource
|
||||
}
|
||||
|
||||
writeStats(dspaceCollection, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
writeStats(item, UsageEvent.Action.REMOVE, user_ip, user_agent, xforwarderfor, headers, request);
|
||||
headers, request, context);
|
||||
writeStats(item, UsageEvent.Action.REMOVE, user_ip, user_agent, xforwarderfor, headers, request, context);
|
||||
|
||||
dspaceCollection.removeItem(item);
|
||||
|
||||
|
@@ -87,7 +87,7 @@ public class CommunitiesResource extends Resource
|
||||
|
||||
org.dspace.content.Community dspaceCommunity = findCommunity(context, communityId, org.dspace.core.Constants.READ);
|
||||
writeStats(dspaceCommunity, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers,
|
||||
request);
|
||||
request, context);
|
||||
|
||||
community = new Community(dspaceCommunity, expand, context);
|
||||
context.complete();
|
||||
@@ -167,7 +167,7 @@ public class CommunitiesResource extends Resource
|
||||
{
|
||||
Community community = new Community(dspaceCommunities[i], expand, context);
|
||||
writeStats(dspaceCommunities[i], UsageEvent.Action.VIEW, user_ip, user_agent,
|
||||
xforwarderfor, headers, request);
|
||||
xforwarderfor, headers, request, context);
|
||||
communities.add(community);
|
||||
}
|
||||
}
|
||||
@@ -249,7 +249,7 @@ public class CommunitiesResource extends Resource
|
||||
{
|
||||
Community community = new Community(dspaceCommunities[i], expand, context);
|
||||
writeStats(dspaceCommunities[i], UsageEvent.Action.VIEW, user_ip, user_agent,
|
||||
xforwarderfor, headers, request);
|
||||
xforwarderfor, headers, request, context);
|
||||
communities.add(community);
|
||||
}
|
||||
}
|
||||
@@ -317,7 +317,7 @@ public class CommunitiesResource extends Resource
|
||||
|
||||
org.dspace.content.Community dspaceCommunity = findCommunity(context, communityId, org.dspace.core.Constants.READ);
|
||||
writeStats(dspaceCommunity, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers,
|
||||
request);
|
||||
request, context);
|
||||
|
||||
if (!((limit != null) && (limit >= 0) && (offset != null) && (offset >= 0)))
|
||||
{
|
||||
@@ -334,7 +334,7 @@ public class CommunitiesResource extends Resource
|
||||
{
|
||||
collections.add(new Collection(dspaceCollections[i], expand, context, 20, 0));
|
||||
writeStats(dspaceCollections[i], UsageEvent.Action.VIEW, user_ip, user_agent,
|
||||
xforwarderfor, headers, request);
|
||||
xforwarderfor, headers, request, context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -403,7 +403,7 @@ public class CommunitiesResource extends Resource
|
||||
|
||||
org.dspace.content.Community dspaceCommunity = findCommunity(context, communityId, org.dspace.core.Constants.READ);
|
||||
writeStats(dspaceCommunity, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers,
|
||||
request);
|
||||
request, context);
|
||||
|
||||
if (!((limit != null) && (limit >= 0) && (offset != null) && (offset >= 0)))
|
||||
{
|
||||
@@ -420,7 +420,7 @@ public class CommunitiesResource extends Resource
|
||||
{
|
||||
communities.add(new Community(dspaceCommunities[i], expand, context));
|
||||
writeStats(dspaceCommunities[i], UsageEvent.Action.VIEW, user_ip, user_agent,
|
||||
xforwarderfor, headers, request);
|
||||
xforwarderfor, headers, request, context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -490,7 +490,7 @@ public class CommunitiesResource extends Resource
|
||||
|
||||
org.dspace.content.Community dspaceCommunity = org.dspace.content.Community.create(null, context);
|
||||
writeStats(dspaceCommunity, UsageEvent.Action.CREATE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
dspaceCommunity.setMetadata("name", community.getName());
|
||||
dspaceCommunity.setMetadata(org.dspace.content.Community.COPYRIGHT_TEXT, community.getCopyrightText());
|
||||
@@ -563,7 +563,7 @@ public class CommunitiesResource extends Resource
|
||||
org.dspace.content.Community dspaceCommunity = findCommunity(context, communityId, org.dspace.core.Constants.WRITE);
|
||||
|
||||
writeStats(dspaceCommunity, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
org.dspace.content.Collection dspaceCollection = dspaceCommunity.createCollection();
|
||||
dspaceCollection.setLicense(collection.getLicense());
|
||||
@@ -648,7 +648,7 @@ public class CommunitiesResource extends Resource
|
||||
org.dspace.core.Constants.WRITE);
|
||||
|
||||
writeStats(dspaceParentCommunity, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
org.dspace.content.Community dspaceCommunity = org.dspace.content.Community.create(dspaceParentCommunity, context);
|
||||
dspaceCommunity.setMetadata("name", community.getName());
|
||||
@@ -726,7 +726,7 @@ public class CommunitiesResource extends Resource
|
||||
|
||||
org.dspace.content.Community dspaceCommunity = findCommunity(context, communityId, org.dspace.core.Constants.WRITE);
|
||||
writeStats(dspaceCommunity, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
|
||||
// dspaceCommunity.setLogo(arg0); // TODO Add this option.
|
||||
dspaceCommunity.setMetadata("name", community.getName());
|
||||
@@ -793,7 +793,7 @@ public class CommunitiesResource extends Resource
|
||||
|
||||
org.dspace.content.Community community = findCommunity(context, communityId, org.dspace.core.Constants.DELETE);
|
||||
writeStats(community, UsageEvent.Action.DELETE, user_ip, user_agent, xforwarderfor, headers,
|
||||
request);
|
||||
request, context);
|
||||
|
||||
community.delete();
|
||||
context.complete();
|
||||
@@ -893,9 +893,9 @@ public class CommunitiesResource extends Resource
|
||||
}
|
||||
|
||||
writeStats(community, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor, headers,
|
||||
request);
|
||||
request, context);
|
||||
writeStats(collection, UsageEvent.Action.DELETE, user_ip, user_agent, xforwarderfor, headers,
|
||||
request);
|
||||
request, context);
|
||||
|
||||
community.removeCollection(collection);
|
||||
|
||||
@@ -1000,9 +1000,9 @@ public class CommunitiesResource extends Resource
|
||||
}
|
||||
|
||||
writeStats(parentCommunity, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
writeStats(subcommunity, UsageEvent.Action.DELETE, user_ip, user_agent, xforwarderfor, headers,
|
||||
request);
|
||||
request, context);
|
||||
|
||||
parentCommunity.removeSubcommunity(subcommunity);
|
||||
context.complete();
|
||||
|
@@ -104,7 +104,7 @@ public class ItemsResource extends Resource
|
||||
context = createContext(getUser(headers));
|
||||
org.dspace.content.Item dspaceItem = findItem(context, itemId, org.dspace.core.Constants.READ);
|
||||
|
||||
writeStats(dspaceItem, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers, request);
|
||||
writeStats(dspaceItem, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers, request, context);
|
||||
|
||||
item = new Item(dspaceItem, expand, context);
|
||||
context.complete();
|
||||
@@ -182,7 +182,7 @@ public class ItemsResource extends Resource
|
||||
{
|
||||
items.add(new Item(dspaceItem, expand, context));
|
||||
writeStats(dspaceItem, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor,
|
||||
headers, request);
|
||||
headers, request, context);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -240,7 +240,7 @@ public class ItemsResource extends Resource
|
||||
context = createContext(getUser(headers));
|
||||
org.dspace.content.Item dspaceItem = findItem(context, itemId, org.dspace.core.Constants.READ);
|
||||
|
||||
writeStats(dspaceItem, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers, request);
|
||||
writeStats(dspaceItem, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers, request, context);
|
||||
|
||||
metadata = new org.dspace.rest.common.Item(dspaceItem, "metadata", context).getMetadata();
|
||||
context.complete();
|
||||
@@ -299,7 +299,7 @@ public class ItemsResource extends Resource
|
||||
context = createContext(getUser(headers));
|
||||
org.dspace.content.Item dspaceItem = findItem(context, itemId, org.dspace.core.Constants.READ);
|
||||
|
||||
writeStats(dspaceItem, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers, request);
|
||||
writeStats(dspaceItem, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers, request, context);
|
||||
|
||||
List<Bitstream> itemBitstreams = new Item(dspaceItem, "bitstreams", context).getBitstreams();
|
||||
|
||||
@@ -370,7 +370,7 @@ public class ItemsResource extends Resource
|
||||
context = createContext(getUser(headers));
|
||||
org.dspace.content.Item dspaceItem = findItem(context, itemId, org.dspace.core.Constants.WRITE);
|
||||
|
||||
writeStats(dspaceItem, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor, headers, request);
|
||||
writeStats(dspaceItem, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor, headers, request, context);
|
||||
|
||||
for (MetadataEntry entry : metadata)
|
||||
{
|
||||
@@ -450,7 +450,7 @@ public class ItemsResource extends Resource
|
||||
context = createContext(getUser(headers));
|
||||
org.dspace.content.Item dspaceItem = findItem(context, itemId, org.dspace.core.Constants.WRITE);
|
||||
|
||||
writeStats(dspaceItem, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor, headers, request);
|
||||
writeStats(dspaceItem, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor, headers, request, context);
|
||||
|
||||
// Is better to add bitstream to ORIGINAL bundle or to item own?
|
||||
log.trace("Creating bitstream in item.");
|
||||
@@ -616,7 +616,7 @@ public class ItemsResource extends Resource
|
||||
context = createContext(getUser(headers));
|
||||
org.dspace.content.Item dspaceItem = findItem(context, itemId, org.dspace.core.Constants.WRITE);
|
||||
|
||||
writeStats(dspaceItem, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor, headers, request);
|
||||
writeStats(dspaceItem, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor, headers, request, context);
|
||||
|
||||
log.trace("Deleting original metadata from item.");
|
||||
for (MetadataEntry entry : metadata)
|
||||
@@ -698,7 +698,7 @@ public class ItemsResource extends Resource
|
||||
context = createContext(getUser(headers));
|
||||
org.dspace.content.Item dspaceItem = findItem(context, itemId, org.dspace.core.Constants.DELETE);
|
||||
|
||||
writeStats(dspaceItem, UsageEvent.Action.REMOVE, user_ip, user_agent, xforwarderfor, headers, request);
|
||||
writeStats(dspaceItem, UsageEvent.Action.REMOVE, user_ip, user_agent, xforwarderfor, headers, request, context);
|
||||
|
||||
log.trace("Deleting item.");
|
||||
org.dspace.content.Collection collection = org.dspace.content.Collection.find(context,
|
||||
@@ -767,7 +767,7 @@ public class ItemsResource extends Resource
|
||||
context = createContext(getUser(headers));
|
||||
org.dspace.content.Item dspaceItem = findItem(context, itemId, org.dspace.core.Constants.WRITE);
|
||||
|
||||
writeStats(dspaceItem, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor, headers, request);
|
||||
writeStats(dspaceItem, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor, headers, request, context);
|
||||
|
||||
log.trace("Deleting metadata.");
|
||||
// TODO Rewrite without deprecated object. Leave there only generated metadata.
|
||||
@@ -862,9 +862,9 @@ public class ItemsResource extends Resource
|
||||
return Response.status(Status.UNAUTHORIZED).build();
|
||||
}
|
||||
|
||||
writeStats(item, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor, headers, request);
|
||||
writeStats(item, UsageEvent.Action.UPDATE, user_ip, user_agent, xforwarderfor, headers, request, context);
|
||||
writeStats(bitstream, UsageEvent.Action.REMOVE, user_ip, user_agent, xforwarderfor, headers,
|
||||
request);
|
||||
request, context);
|
||||
|
||||
log.trace("Deleting bitstream...");
|
||||
for (org.dspace.content.Bundle bundle : item.getBundles())
|
||||
@@ -1005,7 +1005,7 @@ public class ItemsResource extends Resource
|
||||
org.dspace.core.Constants.READ);
|
||||
Item item = new Item(dspaceItem, "", context);
|
||||
writeStats(dspaceItem, UsageEvent.Action.VIEW, user_ip, user_agent, xforwarderfor, headers,
|
||||
request);
|
||||
request, context);
|
||||
items.add(item);
|
||||
}
|
||||
|
||||
|
@@ -19,6 +19,7 @@ import javax.ws.rs.core.Response;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.dspace.content.DSpaceObject;
|
||||
import org.dspace.core.ConfigurationManager;
|
||||
import org.dspace.core.Context;
|
||||
import org.dspace.eperson.EPerson;
|
||||
import org.dspace.rest.exceptions.ContextException;
|
||||
import org.dspace.usage.UsageEvent;
|
||||
@@ -99,22 +100,16 @@ public class Resource
|
||||
* @param xforwarderfor
|
||||
* @param headers
|
||||
* @param request
|
||||
* @param context
|
||||
*/
|
||||
protected void writeStats(DSpaceObject dspaceObject, UsageEvent.Action action,
|
||||
String user_ip, String user_agent, String xforwarderfor, HttpHeaders headers, HttpServletRequest request)
|
||||
String user_ip, String user_agent, String xforwarderfor, HttpHeaders headers, HttpServletRequest request, Context context)
|
||||
{
|
||||
|
||||
if (!writeStatistics)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
org.dspace.core.Context context = null;
|
||||
|
||||
try
|
||||
{
|
||||
context = createContext(getUser(headers));
|
||||
|
||||
if ((user_ip == null) || (user_ip.length() == 0))
|
||||
{
|
||||
new DSpace().getEventService().fireEvent(new UsageEvent(action, request, context, dspaceObject));
|
||||
@@ -126,28 +121,6 @@ public class Resource
|
||||
}
|
||||
|
||||
log.debug("fired event");
|
||||
context.complete();
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
if ((context != null) && (context.isValid()))
|
||||
{
|
||||
context.abort();
|
||||
}
|
||||
log.error("Could not write usageEvent, SQLException. Message: " + e);
|
||||
}
|
||||
catch (ContextException e)
|
||||
{
|
||||
log.error("Could not write usageEvent, ContextException. Message: " + e.getMessage());
|
||||
}
|
||||
finally
|
||||
{
|
||||
if ((context != null) && (context.isValid()))
|
||||
{
|
||||
context.abort();
|
||||
log.error("Something get wrong. Aborting context in finally statement.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user