001
014
015 package com.liferay.portal.verify;
016
017 import com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery;
018 import com.liferay.portal.kernel.dao.orm.QueryUtil;
019 import com.liferay.portal.kernel.log.Log;
020 import com.liferay.portal.kernel.log.LogFactoryUtil;
021 import com.liferay.portlet.wiki.model.WikiPage;
022 import com.liferay.portlet.wiki.model.WikiPageResource;
023 import com.liferay.portlet.wiki.service.WikiPageLocalServiceUtil;
024 import com.liferay.portlet.wiki.service.WikiPageResourceLocalServiceUtil;
025 import com.liferay.portlet.wiki.util.comparator.PageVersionComparator;
026
027 import java.util.Date;
028 import java.util.List;
029
030
033 public class VerifyWiki extends VerifyProcess {
034
035 @Override
036 protected void doVerify() throws Exception {
037 verifyCreateDate();
038 verifyNoAssetPages();
039 }
040
041 protected void verifyCreateDate() throws Exception {
042 ActionableDynamicQuery actionableDynamicQuery =
043 WikiPageResourceLocalServiceUtil.getActionableDynamicQuery();
044
045 actionableDynamicQuery.setPerformActionMethod(
046 new ActionableDynamicQuery.PerformActionMethod() {
047
048 @Override
049 public void performAction(Object object) {
050 WikiPageResource pageResource = (WikiPageResource)object;
051
052 verifyCreateDate(pageResource);
053 }
054
055 });
056
057 actionableDynamicQuery.performActions();
058
059 if (_log.isDebugEnabled()) {
060 _log.debug("Create dates verified for pages");
061 }
062 }
063
064 protected void verifyCreateDate(WikiPageResource pageResource) {
065 List<WikiPage> pages = WikiPageLocalServiceUtil.getPages(
066 pageResource.getNodeId(), pageResource.getTitle(),
067 QueryUtil.ALL_POS, QueryUtil.ALL_POS,
068 new PageVersionComparator(true));
069
070 if (pages.size() <= 1) {
071 return;
072 }
073
074 WikiPage firstPage = pages.get(0);
075
076 Date createDate = firstPage.getCreateDate();
077
078 for (WikiPage page : pages) {
079 if (!createDate.equals(page.getCreateDate())) {
080 page.setCreateDate(createDate);
081
082 WikiPageLocalServiceUtil.updateWikiPage(page);
083 }
084 }
085 }
086
087 protected void verifyNoAssetPages() throws Exception {
088 List<WikiPage> pages = WikiPageLocalServiceUtil.getNoAssetPages();
089
090 if (_log.isDebugEnabled()) {
091 _log.debug("Processing " + pages.size() + " pages with no asset");
092 }
093
094 for (WikiPage page : pages) {
095 try {
096 WikiPageLocalServiceUtil.updateAsset(
097 page.getUserId(), page, null, null, null);
098 }
099 catch (Exception e) {
100 if (_log.isWarnEnabled()) {
101 _log.warn(
102 "Unable to update asset for page " + page.getPageId() +
103 ": " + e.getMessage());
104 }
105 }
106 }
107
108 if (_log.isDebugEnabled()) {
109 _log.debug("Assets verified for pages");
110 }
111 }
112
113 private static final Log _log = LogFactoryUtil.getLog(VerifyWiki.class);
114
115 }