Current situation: there is a storage extension for pages (class MyPage extends JPAPageDAO implements PageDAO, from com.tridion.storage.dao.PageDAO and com.tridion.storage.persistence.JPAPageDAO)

I am trying to see if it is possible to get some of my logic from storage extension into templates ( I have there some things I could definitely implement in other places ) .

In the storage extension I have override for create and remove methods, and I have manged to move some of that logic to templates, identifying create and remove based on transaction.Instruction.ResolveInstruction.Purpose (Publish for create and Unpublish for remove)

I am having difficulties understanding Purpose RePublish and method update.

  1. Is there a way for me to determine if update (in the storage extension) will be called from Tridion templates during publishing (I presume not, but it never hurts to check).
  2. Also, during publishing, when is Purpose set to Republish?


2 Answers 2


If it is for ComponentPresentationDAO then I can confirm that it will always be the create (for publish and Re-publish) and remove (for unpublish ) which will be called.

The Update method will never be called.

It might be because the super class JPAComponentPresentationDAO have this update method but it is not in use by the Storage Layer.

I hope it helps

  • Hi Pakaj, I didn't added this information... sorry. My questions was not about component presentations but about pages. I will update the question. Commented Sep 3, 2014 at 12:41
  • This even applies for the FSPresetationDAO. So even in case of pages the update method will not be called Commented Sep 3, 2014 at 12:50

Storage extension has nothing to do with CMS Templates, both belong to two completely different contexts. Templates are executed in the CMS during the publishing action. Once the Package is sent to the deployer, the deployer process the zip received and stores the items. This is when the Storage extension is executed. Moving logic from an storage extension into CMS templates does not make sense, as the storage extension is written in Java and Templates are written in a combination of .Net, DWT, XSLT syntax.

Answering your first question, update can't be called directly from CMS Templates during publishing. There is no communication between the code that is executed during the rendering of a template and the code that is executed during the deployment / storing process. Although there are ways of trigger actions based on whatever is sent to the deployer (example: Using metadata that will be processed by deployer), there is no direct communication (using code) between the CMS template and the storage extension

My recommendation is to explain in detail what exactly you want to achieve, that will help us to understand

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.