Canh Ngo pushed to branch feature/cmng-psp1 at cms-community / hippo-site-toolkit
Commits: 809c3ec1 by Canh Ngo at 2016-03-22T14:18:57+01:00 HSTTWO-3620: refactored the code to populate page metadata to a separated method - - - - - 1 changed file: - components/core/src/main/java/org/hippoecm/hst/core/channelmanager/CmsComponentWindowResponseAppender.java Changes: ===================================== components/core/src/main/java/org/hippoecm/hst/core/channelmanager/CmsComponentWindowResponseAppender.java ===================================== --- a/components/core/src/main/java/org/hippoecm/hst/core/channelmanager/CmsComponentWindowResponseAppender.java +++ b/components/core/src/main/java/org/hippoecm/hst/core/channelmanager/CmsComponentWindowResponseAppender.java @@ -70,52 +70,54 @@ public class CmsComponentWindowResponseAppender extends AbstractComponentWindowR if (isComposerMode(request)) { populateComponentMetaData(request, response, window); } - } else { - if (isTopHstResponse(rootWindow, rootRenderingWindow, window)) { - final HstRequestContext requestContext = request.getRequestContext(); - final Mount mount = requestContext.getResolvedMount().getMount(); - final Map<String, String> pageMetaData = new HashMap<>(); - - pageMetaData.put(ChannelManagerConstants.HST_MOUNT_ID, mount.getIdentifier()); - pageMetaData.put(ChannelManagerConstants.HST_SITE_ID, mount.getHstSite().getCanonicalIdentifier()); - pageMetaData.put(ChannelManagerConstants.HST_PAGE_ID, compConfig.getCanonicalIdentifier()); - - final ResolvedSiteMapItem resolvedSiteMapItem = requestContext.getResolvedSiteMapItem(); - if (resolvedSiteMapItem != null) { - final HstSiteMapItem hstSiteMapItem = resolvedSiteMapItem.getHstSiteMapItem(); - pageMetaData.put(ChannelManagerConstants.HST_SITEMAPITEM_ID, ((CanonicalInfo) hstSiteMapItem).getCanonicalIdentifier()); - final HstSiteMap siteMap = hstSiteMapItem.getHstSiteMap(); - if (siteMap instanceof CanonicalInfo) { - final CanonicalInfo canonicalInfo = (CanonicalInfo) siteMap; - pageMetaData.put(ChannelManagerConstants.HST_SITEMAP_ID, canonicalInfo.getCanonicalIdentifier()); - if (canonicalInfo.getCanonicalPath().contains(WORKSPACE_PATH_ELEMENT) && - canonicalInfo.getCanonicalPath().startsWith(mount.getHstSite().getConfigurationPath())) { - // sitemap item is part of workspace && of current site configuration (thus not inherited) - pageMetaData.put(ChannelManagerConstants.HST_PAGE_EDITABLE, "true"); - } else { - pageMetaData.put(ChannelManagerConstants.HST_PAGE_EDITABLE, "false"); - } - } else { - log.warn("Expected sitemap of subtype {}. Cannot set sitemap id.", CanonicalInfo.class.getName()); - } - } - - Object variant = session.getAttribute(ContainerConstants.RENDER_VARIANT); - if (variant == null) { - variant = ContainerConstants.DEFAULT_PARAMETER_PREFIX; - } - pageMetaData.put(ChannelManagerConstants.HST_RENDER_VARIANT, variant.toString()); - pageMetaData.put(ChannelManagerConstants.HST_SITE_HAS_PREVIEW_CONFIG, String.valueOf(mount.getHstSite().hasPreviewConfiguration())); + } else if (isTopHstResponse(rootWindow, rootRenderingWindow, window)) { + populatePageMetaData(request, response, session, compConfig); + } + } - for (Map.Entry<String, String> entry : pageMetaData.entrySet()) { - response.addHeader(entry.getKey(), entry.getValue()); + private void populatePageMetaData(final HstRequest request, final HstResponse response, final HttpSession session, final HstComponentConfiguration compConfig) { + final HstRequestContext requestContext = request.getRequestContext(); + final Mount mount = requestContext.getResolvedMount().getMount(); + final Map<String, String> pageMetaData = new HashMap<>(); + + pageMetaData.put(ChannelManagerConstants.HST_MOUNT_ID, mount.getIdentifier()); + pageMetaData.put(ChannelManagerConstants.HST_SITE_ID, mount.getHstSite().getCanonicalIdentifier()); + pageMetaData.put(ChannelManagerConstants.HST_PAGE_ID, compConfig.getCanonicalIdentifier()); + + final ResolvedSiteMapItem resolvedSiteMapItem = requestContext.getResolvedSiteMapItem(); + if (resolvedSiteMapItem != null) { + final HstSiteMapItem hstSiteMapItem = resolvedSiteMapItem.getHstSiteMapItem(); + pageMetaData.put(ChannelManagerConstants.HST_SITEMAPITEM_ID, ((CanonicalInfo) hstSiteMapItem).getCanonicalIdentifier()); + final HstSiteMap siteMap = hstSiteMapItem.getHstSiteMap(); + if (siteMap instanceof CanonicalInfo) { + final CanonicalInfo canonicalInfo = (CanonicalInfo) siteMap; + pageMetaData.put(ChannelManagerConstants.HST_SITEMAP_ID, canonicalInfo.getCanonicalIdentifier()); + if (canonicalInfo.getCanonicalPath().contains(WORKSPACE_PATH_ELEMENT) && + canonicalInfo.getCanonicalPath().startsWith(mount.getHstSite().getConfigurationPath())) { + // sitemap item is part of workspace && of current site configuration (thus not inherited) + pageMetaData.put(ChannelManagerConstants.HST_PAGE_EDITABLE, "true"); + } else { + pageMetaData.put(ChannelManagerConstants.HST_PAGE_EDITABLE, "false"); } - pageMetaData.put(ChannelManagerConstants.HST_TYPE, ChannelManagerConstants.HST_TYPE_PAGE_META_DATA); - pageMetaData.put(ChannelManagerConstants.HST_PATH_INFO, requestContext.getBaseURL().getPathInfo()); - pageMetaData.put(ChannelManagerConstants.HST_CHANNEL_ID, mount.getChannel().getId()); - response.addEpilogue(createCommentWithAttr(pageMetaData, response)); + } else { + log.warn("Expected sitemap of subtype {}. Cannot set sitemap id.", CanonicalInfo.class.getName()); } } + + Object variant = session.getAttribute(ContainerConstants.RENDER_VARIANT); + if (variant == null) { + variant = ContainerConstants.DEFAULT_PARAMETER_PREFIX; + } + pageMetaData.put(ChannelManagerConstants.HST_RENDER_VARIANT, variant.toString()); + pageMetaData.put(ChannelManagerConstants.HST_SITE_HAS_PREVIEW_CONFIG, String.valueOf(mount.getHstSite().hasPreviewConfiguration())); + + for (Map.Entry<String, String> entry : pageMetaData.entrySet()) { + response.addHeader(entry.getKey(), entry.getValue()); + } + pageMetaData.put(ChannelManagerConstants.HST_TYPE, ChannelManagerConstants.HST_TYPE_PAGE_META_DATA); + pageMetaData.put(ChannelManagerConstants.HST_PATH_INFO, requestContext.getBaseURL().getPathInfo()); + pageMetaData.put(ChannelManagerConstants.HST_CHANNEL_ID, mount.getChannel().getId()); + response.addEpilogue(createCommentWithAttr(pageMetaData, response)); } private void populateComponentMetaData(final HstRequest request, final HstResponse response, View it on GitLab: https://code.onehippo.org/cms-community/hippo-site-toolkit/commit/809c3ec1e544ae0ea8db974c984cb298293f6d83
_______________________________________________ Hippocms-svn mailing list Hippocms-svn@lists.onehippo.org https://lists.onehippo.org/mailman/listinfo/hippocms-svn