public function publish($contentId, $versionNo, MetadataUpdateStruct $struct)
{
$this->logger->logCall(__METHOD__, array('content' => $contentId, 'version' => $versionNo, 'struct' => $struct));
$content = $this->persistenceHandler->contentHandler()->publish($contentId, $versionNo, $struct);
$this->cache->clear('content', $contentId);
$this->cache->clear('content', 'info', 'remoteId');
$this->cache->clear('location', 'subtree');
// warm up cache
$contentInfo = $content->versionInfo->contentInfo;
$this->cache->getItem('content', $contentInfo->id, $content->versionInfo->versionNo, self::ALL_TRANSLATIONS_KEY)->set($content)->save();
$this->cache->getItem('content', 'info', $contentInfo->id)->set($contentInfo)->save();
return $content;
}