AbstractCampaignProcess.java
3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* com.day.cq.wcm.api.Page
* com.day.cq.wcm.api.PageManager
* com.day.cq.wcm.webservicesupport.Configuration
* com.day.cq.workflow.WorkflowSession
* com.day.cq.workflow.exec.WorkItem
* com.day.cq.workflow.exec.WorkflowData
* com.day.cq.workflow.exec.WorkflowProcess
* javax.jcr.Session
* org.apache.sling.api.resource.LoginException
* org.apache.sling.api.resource.ModifiableValueMap
* org.apache.sling.api.resource.Resource
* org.apache.sling.api.resource.ResourceResolver
* org.apache.sling.api.resource.ResourceResolverFactory
* org.apache.sling.api.resource.ValueMap
*/
package com.day.cq.mcm.campaign.impl;
import com.day.cq.mcm.campaign.ACConnectorException;
import com.day.cq.mcm.campaign.CampaignConnector;
import com.day.cq.mcm.campaign.CampaignCredentials;
import com.day.cq.mcm.campaign.ConfigurationException;
import com.day.cq.wcm.api.Page;
import com.day.cq.wcm.api.PageManager;
import com.day.cq.wcm.webservicesupport.Configuration;
import com.day.cq.workflow.WorkflowSession;
import com.day.cq.workflow.exec.WorkItem;
import com.day.cq.workflow.exec.WorkflowData;
import com.day.cq.workflow.exec.WorkflowProcess;
import java.util.HashMap;
import java.util.Map;
import javax.jcr.Session;
import org.apache.sling.api.resource.LoginException;
import org.apache.sling.api.resource.ModifiableValueMap;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.api.resource.ValueMap;
abstract class AbstractCampaignProcess
implements WorkflowProcess {
AbstractCampaignProcess() {
}
protected ResourceResolver getResourceResolver(ResourceResolverFactory factory, WorkflowSession session) {
try {
Session jcrSession = session.getSession();
HashMap<String, Session> authInfo = new HashMap<String, Session>();
authInfo.put("user.jcr.session", jcrSession);
return factory.getResourceResolver(authInfo);
}
catch (LoginException le) {
return null;
}
}
protected Page getPage(ResourceResolver resolver, WorkItem item) {
String payloadPath = (String)item.getWorkflowData().getPayload();
PageManager pageManager = (PageManager)resolver.adaptTo(PageManager.class);
return pageManager.getPage(payloadPath);
}
protected CampaignCredentials getCredentials(Configuration config, CampaignConnector connector) throws ACConnectorException {
return connector.retrieveCredentials(config);
}
protected Configuration getWebserviceConfig(Page page, CampaignConnector connector) throws ACConnectorException {
Resource rsc = page.getContentResource();
return connector.getWebserviceConfig(rsc);
}
protected String getTemplate(Page page) throws ACConnectorException {
ValueMap values = page.getProperties();
String templateId = (String)values.get("acTemplateId", String.class);
if (templateId == null) {
throw new ConfigurationException("Missing template ID on newsletter.");
}
return templateId;
}
protected String getStatus(ResourceResolver resolver, WorkItem item) {
Page page = this.getPage(resolver, item);
Resource pageContent = page.getContentResource();
ModifiableValueMap props = (ModifiableValueMap)pageContent.adaptTo(ModifiableValueMap.class);
return (String)props.get("acPublishState", String.class);
}
protected void setStatus(ResourceResolver resolver, WorkItem item, String status) {
Page page = this.getPage(resolver, item);
Resource pageContent = page.getContentResource();
ModifiableValueMap props = (ModifiableValueMap)pageContent.adaptTo(ModifiableValueMap.class);
props.put((Object)"acPublishState", (Object)status);
}
}