Search in sources :

Example 6 with Page

use of com.day.cq.wcm.api.Page in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class ListImpl method populateTagListItems.

private void populateTagListItems() {
    listItems = new ArrayList<>();
    String[] tags = properties.get(PN_TAGS, new String[0]);
    boolean matchAny = properties.get(PN_TAGS_MATCH, TAGS_MATCH_ANY_VALUE).equals(TAGS_MATCH_ANY_VALUE);
    if (ArrayUtils.isNotEmpty(tags)) {
        Page rootPage = getRootPage(PN_TAGS_PARENT_PAGE);
        if (rootPage != null) {
            TagManager tagManager = resourceResolver.adaptTo(TagManager.class);
            if (tagManager != null) {
                RangeIterator<Resource> resourceRangeIterator = tagManager.find(rootPage.getPath(), tags, matchAny);
                if (resourceRangeIterator != null) {
                    while (resourceRangeIterator.hasNext()) {
                        Page containingPage = pageManager.getContainingPage(resourceRangeIterator.next());
                        if (containingPage != null) {
                            listItems.add(containingPage);
                        }
                    }
                }
            }
        }
    }
}
Also used : TagManager(com.day.cq.tagging.TagManager) Resource(org.apache.sling.api.resource.Resource) Page(com.day.cq.wcm.api.Page)

Example 7 with Page

use of com.day.cq.wcm.api.Page in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class PageSerializerTest method serialize.

@Test
public void serialize() throws Exception {
    Page page = mock(Page.class);
    when(page.getName()).thenReturn(PAGE_NAME);
    when(page.getTitle()).thenReturn(PAGE_TITLE);
    when(page.getPageTitle()).thenReturn(PAGE_TITLE);
    when(page.getPath()).thenReturn(PAGE_PATH);
    when(page.getDescription()).thenReturn(PAGE_DESCRIPTION);
    JsonGenerator jsonGenerator = mock(JsonGenerator.class);
    SerializerProvider serializerProvider = mock(SerializerProvider.class);
    PageSerializer pageSerializer = new PageSerializer(Page.class);
    pageSerializer.serialize(page, jsonGenerator, serializerProvider);
    verify(jsonGenerator).writeStartObject();
    verify(jsonGenerator).writeStringField(PageSerializer.JSON_KEY_NAME, page.getName());
    verify(jsonGenerator).writeStringField(PageSerializer.JSON_KEY_TITLE, page.getTitle());
    verify(jsonGenerator).writeStringField(PageSerializer.JSON_KEY_PAGE_TITLE, page.getPageTitle());
    verify(jsonGenerator).writeStringField(PageSerializer.JSON_KEY_PATH, page.getPath());
    verify(jsonGenerator).writeStringField(PageSerializer.JSON_KEY_DESCRIPTION, page.getDescription());
    verify(jsonGenerator).writeEndObject();
    verifyNoMoreInteractions(jsonGenerator);
}
Also used : JsonGenerator(com.fasterxml.jackson.core.JsonGenerator) Page(com.day.cq.wcm.api.Page) SerializerProvider(com.fasterxml.jackson.databind.SerializerProvider) Test(org.junit.Test)

Example 8 with Page

use of com.day.cq.wcm.api.Page in project CQ-Actions by Cognifide.

the class HandleMessageJob method process.

@Override
public JobResult process(Job job) {
    final String path = (String) job.getProperty(SlingConstants.PROPERTY_PATH);
    ResourceResolver resolver = null;
    try {
        resolver = resolverFactory.getAdministrativeResourceResolver(null);
        final PageManager pm = resolver.adaptTo(PageManager.class);
        final Page page = pm.getPage(path);
        final String actionType;
        if (page != null && page.getContentResource() != null) {
            actionType = page.getContentResource().getResourceType();
            consumeMessage(actionType, page.getContentResource());
        } else {
            LOG.debug("Empty resource type for action page: " + path);
        }
    } catch (Exception e) {
        LOG.error(e.getMessage(), e);
    } finally {
        if (resolver != null) {
            resolver.close();
        }
    }
    return JobResult.OK;
}
Also used : PageManager(com.day.cq.wcm.api.PageManager) ResourceResolver(org.apache.sling.api.resource.ResourceResolver) Page(com.day.cq.wcm.api.Page)

Example 9 with Page

use of com.day.cq.wcm.api.Page in project acs-aem-commons by Adobe-Consulting-Services.

the class SendTemplatedEmailUtilsTest method testGetPayloadProperties_Page.

@Test
public void testGetPayloadProperties_Page() throws Exception {
    // set up jcr properties
    mockJcrProperties();
    Resource payloadRes = mock(Resource.class);
    Resource jcrRes = mock(Resource.class);
    Page payloadPage = mock(Page.class);
    when(payloadRes.adaptTo(Page.class)).thenReturn(payloadPage);
    when(payloadPage.getContentResource()).thenReturn(jcrRes);
    // mock valueMap
    when(jcrRes.getValueMap()).thenReturn(vmap);
    Map<String, String> props = SendTemplatedEmailUtils.getPayloadProperties(payloadRes, sdf);
    assertEquals(props.get(PN_CALENDAR), CALENDAR_TOSTRING);
    assertEquals(props.get(PN_TITLE), STR_TOSTRING);
    assertEquals(props.get(PN_LONG), LONG_TOSTRING);
    assertEquals(props.get(PN_STR_ARRAY), STR_ARRAY_TOSTRING);
}
Also used : Resource(org.apache.sling.api.resource.Resource) Page(com.day.cq.wcm.api.Page) Test(org.junit.Test)

Example 10 with Page

use of com.day.cq.wcm.api.Page in project acs-aem-commons by Adobe-Consulting-Services.

the class AemObjectInjector method getResourceDesign.

private Design getResourceDesign(Object adaptable) {
    Page resourcePage = getResourcePage(adaptable);
    Designer designer = getDesigner(adaptable);
    if (adaptable instanceof SlingHttpServletRequest) {
        SlingHttpServletRequest request = (SlingHttpServletRequest) adaptable;
        if (resourcePage != null && designer != null) {
            String resourceDesignKey = COM_DAY_CQ_WCM_TAGS_DEFINE_OBJECTS_TAG + resourcePage.getPath();
            Object cachedResourceDesign = request.getAttribute(resourceDesignKey);
            if (cachedResourceDesign != null) {
                return (Design) cachedResourceDesign;
            } else {
                Design resourceDesign = designer.getDesign(resourcePage);
                request.setAttribute(resourceDesignKey, resourceDesign);
                return resourceDesign;
            }
        }
    }
    if (adaptable instanceof Resource) {
        return designer != null ? designer.getDesign(resourcePage) : null;
    }
    return null;
}
Also used : Design(com.day.cq.wcm.api.designer.Design) Designer(com.day.cq.wcm.api.designer.Designer) Resource(org.apache.sling.api.resource.Resource) Page(com.day.cq.wcm.api.Page) SlingHttpServletRequest(org.apache.sling.api.SlingHttpServletRequest)

Aggregations

Page (com.day.cq.wcm.api.Page)100 Resource (org.apache.sling.api.resource.Resource)45 PageManager (com.day.cq.wcm.api.PageManager)34 Test (org.junit.jupiter.api.Test)22 ResourceResolver (org.apache.sling.api.resource.ResourceResolver)18 ValueMap (org.apache.sling.api.resource.ValueMap)15 ArrayList (java.util.ArrayList)13 HashMap (java.util.HashMap)12 SlingBindings (org.apache.sling.api.scripting.SlingBindings)12 NotNull (org.jetbrains.annotations.NotNull)10 Test (org.junit.Test)9 HashSet (java.util.HashSet)6 Map (java.util.Map)6 Optional (java.util.Optional)6 SlingHttpServletRequest (org.apache.sling.api.SlingHttpServletRequest)6 Nullable (org.jetbrains.annotations.Nullable)6 LinkHandler (com.adobe.cq.wcm.core.components.internal.link.LinkHandler)5 Template (com.day.cq.wcm.api.Template)5 StringUtils (org.apache.commons.lang3.StringUtils)5 Before (org.junit.Before)5