2929 */
3030package com .atmire .statistics .export ;
3131
32+ import java .io .BufferedReader ;
33+ import java .io .IOException ;
34+ import java .io .InputStreamReader ;
35+ import java .io .UnsupportedEncodingException ;
36+ import java .net .HttpURLConnection ;
37+ import java .net .URL ;
38+ import java .net .URLConnection ;
39+ import java .net .URLEncoder ;
40+ import java .sql .SQLException ;
41+ import java .util .ArrayList ;
42+ import java .util .Date ;
43+ import java .util .List ;
44+ import java .util .UUID ;
45+ import javax .servlet .http .HttpServletRequest ;
46+
3247import com .atmire .statistics .export .factory .OpenURLTrackerLoggerServiceFactory ;
3348import com .atmire .statistics .export .service .OpenURLTrackerLoggerService ;
3449import org .apache .commons .lang .StringUtils ;
3550import org .apache .log4j .Logger ;
3651import org .dspace .app .util .Util ;
37- import org .dspace .content .*;
52+ import org .dspace .content .Bitstream ;
53+ import org .dspace .content .Bundle ;
54+ import org .dspace .content .DCDate ;
55+ import org .dspace .content .Item ;
56+ import org .dspace .content .MetadataField ;
57+ import org .dspace .content .MetadataValue ;
3858import org .dspace .content .factory .ContentServiceFactory ;
3959import org .dspace .content .service .MetadataFieldService ;
4060import org .dspace .core .Context ;
4666import org .dspace .usage .AbstractUsageEventListener ;
4767import org .dspace .usage .UsageEvent ;
4868
49- import javax .servlet .http .HttpServletRequest ;
50- import java .io .BufferedReader ;
51- import java .io .IOException ;
52- import java .io .InputStreamReader ;
53- import java .io .UnsupportedEncodingException ;
54- import java .net .HttpURLConnection ;
55- import java .net .URL ;
56- import java .net .URLConnection ;
57- import java .net .URLEncoder ;
58- import java .sql .SQLException ;
59- import java .util .ArrayList ;
60- import java .util .Date ;
61- import java .util .List ;
62- import java .util .UUID ;
63-
6469/**
6570 * User: kevin (kevin at atmire.com)
6671 * Date: 30-mrt-2010
@@ -126,11 +131,13 @@ public void init(Context context) {
126131 }
127132
128133 public void receiveEvent (Event event ) {
129- boolean irusEnabled = configurationService .getBooleanProperty ("stats.tracker.enabled" );
130- if (irusEnabled && event instanceof UsageEvent ) {
134+ if (event instanceof UsageEvent ) {
131135 UsageEvent ue = (UsageEvent ) event ;
132136 Context context = ue .getContext ();
133- try {
137+ init (context );
138+ boolean irusEnabled = configurationService .getBooleanProperty ("stats.tracker.enabled" );
139+ if (irusEnabled ) {
140+ try {
134141 //Check for item investigation
135142 if (ue .getObject () instanceof Item ) {
136143 Item item = (Item ) ue .getObject ();
@@ -143,43 +150,46 @@ public void receiveEvent(Event event) {
143150 }
144151 }
145152 //Check for bitstream download
146- if (ue .getObject () instanceof Bitstream ) {
147- Bitstream bit = (Bitstream ) ue .getObject ();
148- //Check for an item
149- if (0 < bit .getBundles ().size ()) {
150- if (!SpiderDetector .isSpider (ue .getRequest ())) {
151- Bundle bundle = bit .getBundles ().get (0 );
152- if (bundle .getName () == null || !bundle .getName ().equals ("ORIGINAL" ))
153- return ;
154-
155- if (0 < bundle .getItems ().size ()) {
156- Item item = bundle .getItems ().get (0 );
157-
158- if (item .isArchived () && !ContentServiceFactory .getInstance ().getItemService (). canEdit ( context , item )) {
159- //Check if we have a valid type of item !
160- init ( context );
153+ if (ue .getObject () instanceof Bitstream ) {
154+ Bitstream bit = (Bitstream ) ue .getObject ();
155+ //Check for an item
156+ if (0 < bit .getBundles ().size ()) {
157+ if (!SpiderDetector .isSpider (ue .getRequest ())) {
158+ Bundle bundle = bit .getBundles ().get (0 );
159+ if (bundle .getName () == null || !bundle .getName ().equals ("ORIGINAL" ))
160+ return ;
161+
162+ if (0 < bundle .getItems ().size ()) {
163+ Item item = bundle .getItems ().get (0 );
164+
165+ if (item .isArchived () && !ContentServiceFactory .getInstance ().getItemService ()
166+ . canEdit ( context , item )) {
167+ //Check if we have a valid type of item !
161168 if (shouldProcessItem (item )) {
162169 processItem (ue .getContext (), item , bit , ue .getRequest (), BITSTREAM_DOWNLOAD );
170+ }
163171 }
164172 }
173+ } else {
174+ log .info ("Robot (" + ue .getRequest ().getHeader ("user-agent" ) + ") accessed " + bit
175+ .getName () + "/" + bit .getSource ());
165176 }
166- } else {
167- log .info ("Robot (" + ue .getRequest ().getHeader ("user-agent" ) + ") accessed " + bit .getName () + "/" + bit .getSource ());
168177 }
169178 }
179+ } catch (Exception e ) {
180+ UUID id ;
181+ id = ue .getObject ().getID ();
182+
183+ int type ;
184+ try {
185+ type = ue .getObject ().getType ();
186+ } catch (Exception e1 ) {
187+ type = -1 ;
188+ }
189+ log .error (LogManager .getHeader (ue .getContext (), "Error while processing export of use event" ,
190+ "Id: " + id + " type: " + type ), e );
191+ e .printStackTrace ();
170192 }
171- } catch (Exception e ) {
172- UUID id ;
173- id = ue .getObject ().getID ();
174-
175- int type ;
176- try {
177- type = ue .getObject ().getType ();
178- } catch (Exception e1 ) {
179- type = -1 ;
180- }
181- log .error (LogManager .getHeader (ue .getContext (), "Error while processing export of use event" , "Id: " + id + " type: " + type ), e );
182- e .printStackTrace ();
183193 }
184194 }
185195 }
0 commit comments