Behavior for onAccess of a document

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Member II

Behavior for onAccess of a document

Hello,

I have a requirement to be able to update a property on access of a document. I could not use the onContentRead behavior as it is called only when I read the content of the document. My requirement is a behavior or any other way I can update a property when the document is even accessed from the Share.

Thank you.

4 Replies
Highlighted
Senior Member II

Re: Behavior for onAccess of a document

There is only one behavior in alfresco ,which is onContentRead , which is getting called when you read the content property of the document.This will even get called from share when you open document details of view in alfresco.

What i did not get is  you need an event which gets fired when document is accessed from share.I think onContentRead  should full fill your requirement.Can you explain the reason why it is not suitable for your requirement.

Highlighted
Member II

Re: Behavior for onAccess of a document

Hello Krutik,

Thanks for your time.

My requirement is to be able to update a property on document access. I tried using the onContentRead behavior, it is getting called only when I am viewing the whole content from browser and not just browsing the properties.  My code is like this

this.onContentRead = new JavaBehaviour(this, OnContentReadPolicy.QNAME.getLocalName(), NotificationFrequency.TRANSACTION_COMMIT);
this.policyComponentImpl.bindClassBehaviour(OnContentReadPolicy.QNAME, QName.createQName(MODEL_URI, MODEL_NAME), this.onContentRead);

The public void onContentRead(NodeRef nodeRef) is not getting called while accessing the properties. Is there any other configuration that I am missing?

Thank you.

Highlighted
Senior Member II

Re: Behavior for onAccess of a document

In that case , you don't have choice, other writing the Spring method interceptor.

Using this  you can intercept the method, meaning you can call your own method whenever the specified method in specified object is called.

In your case you need to intercept method of nodeService.Method names are getProperty and getProperties.Below link contains more information on Spring method interceptor.You can google it for more details. Smiley Happy

Spring MVC Interceptor HandlerInterceptorAdapter, HandlerInterceptor Example - JournalDev 

Highlighted
Member II

Re: Behavior for onAccess of a document

Oh thank you Krutik, I will try that.