use of com.liferay.portlet.wiki.NoSuchPageException in project liferay-ide by liferay.
the class MediaWikiImporter method importPage.
protected void importPage(long userId, String author, WikiNode node, String title, String content, String summary, Map<String, String> usersMap, boolean strictImportMode) throws PortalException {
try {
long authorUserId = getUserId(userId, node, author, usersMap);
String parentTitle = readParentTitle(content);
String redirectTitle = readRedirectTitle(content);
ServiceContext serviceContext = new ServiceContext();
serviceContext.setAddGroupPermissions(true);
serviceContext.setAddGuestPermissions(true);
serviceContext.setAssetTagNames(readAssetTagNames(userId, node, content));
if (Validator.isNull(redirectTitle)) {
_translator.setStrictImportMode(strictImportMode);
content = _translator.translate(content);
} else {
content = StringPool.DOUBLE_OPEN_BRACKET + redirectTitle + StringPool.DOUBLE_CLOSE_BRACKET;
}
WikiPage page = null;
try {
page = WikiPageLocalServiceUtil.getPage(node.getNodeId(), title);
} catch (NoSuchPageException nspe) {
page = WikiPageLocalServiceUtil.addPage(authorUserId, node.getNodeId(), title, WikiPageConstants.NEW, null, true, serviceContext);
}
WikiPageLocalServiceUtil.updatePage(authorUserId, node.getNodeId(), title, page.getVersion(), content, summary, true, "creole", parentTitle, redirectTitle, serviceContext);
} catch (Exception e) {
throw new PortalException("Error importing page " + title, e);
}
}
use of com.liferay.portlet.wiki.NoSuchPageException in project liferay-ide by liferay.
the class MediaWikiImporter method processImages.
protected void processImages(long userId, WikiNode node, InputStream imagesInputStream) throws Exception {
if (imagesInputStream == null) {
return;
}
ProgressTracker progressTracker = ProgressTrackerThreadLocal.getProgressTracker();
int count = 0;
ZipReader zipReader = ZipReaderFactoryUtil.getZipReader(imagesInputStream);
List<String> entries = zipReader.getEntries();
int total = entries.size();
if (total > 0) {
try {
WikiPageLocalServiceUtil.getPage(node.getNodeId(), SHARED_IMAGES_TITLE);
} catch (NoSuchPageException nspe) {
ServiceContext serviceContext = new ServiceContext();
serviceContext.setAddGroupPermissions(true);
serviceContext.setAddGuestPermissions(true);
WikiPageLocalServiceUtil.addPage(userId, node.getNodeId(), SHARED_IMAGES_TITLE, SHARED_IMAGES_CONTENT, null, true, serviceContext);
}
}
List<ObjectValuePair<String, InputStream>> inputStreamOVPs = new ArrayList<ObjectValuePair<String, InputStream>>();
try {
int percentage = 50;
for (int i = 0; i < entries.size(); i++) {
String entry = entries.get(i);
String key = entry;
InputStream inputStream = zipReader.getEntryAsInputStream(entry);
String[] paths = StringUtil.split(key, CharPool.SLASH);
if (!isValidImage(paths, inputStream)) {
if (_log.isInfoEnabled()) {
_log.info("Ignoring " + key);
}
continue;
}
String fileName = StringUtil.toLowerCase(paths[paths.length - 1]);
ObjectValuePair<String, InputStream> inputStreamOVP = new ObjectValuePair<String, InputStream>(fileName, inputStream);
inputStreamOVPs.add(inputStreamOVP);
count++;
if ((i % 5) == 0) {
WikiPageLocalServiceUtil.addPageAttachments(userId, node.getNodeId(), SHARED_IMAGES_TITLE, inputStreamOVPs);
inputStreamOVPs.clear();
percentage = Math.min(50 + (i * 50) / total, 99);
progressTracker.setPercent(percentage);
}
}
if (!inputStreamOVPs.isEmpty()) {
WikiPageLocalServiceUtil.addPageAttachments(userId, node.getNodeId(), SHARED_IMAGES_TITLE, inputStreamOVPs);
}
} finally {
for (ObjectValuePair<String, InputStream> inputStreamOVP : inputStreamOVPs) {
InputStream inputStream = inputStreamOVP.getValue();
StreamUtil.cleanUp(inputStream);
}
}
zipReader.close();
if (_log.isInfoEnabled()) {
_log.info("Imported " + count + " images into " + node.getName());
}
}
Aggregations