Issue: In wcmusepojo, we can get these cloud configurations using getInheritedPageProperties(). But inheritedPageProperties variable is not accessible in osgi service or sling servlet.
Solution:
To get properties of a node/page/cloud configurations from sling servlet do the following.
Pass the node path from ajax to servlet.
Create a system user to read the properties.
/**
* Author: Kishore Polsani
*/
@Component(name = "com.kishore.aem.GetProperties", label = "Get Properties", immediate = true, metatype = true)
@Service
@Properties({ @Property(name = "service.description", value = "Get Properties"),
@Property(name = "sling.servlet.paths", value = "/services/aemquickstart/getproperties", propertyPrivate = true),
@Property(name = "service.vendor", value = "AEMQuickstart")
})
public class GetProperties extends SlingAllMethodsServlet implements Serializable {
private static final long serialVersionUID = 1L;
private Logger log = LoggerFactory.getLogger(GetProperties.class);
@Reference
protected SlingRepository repository;
@Reference
private ResourceResolverFactory resolverFactory;
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException
{
try {
Map<String, Object> param = new HashMap<String, Object>();
param.put(ResourceResolverFactory.SUBSERVICE, "readService");
ResourceResolver resourceResolver=null;
resourceResolver = resolverFactory.getServiceResourceResolver(param);
/* Get this path from ajax call request*/
Resource pageResource = resourceResolver.getResource("/etc/cloudservices/salesforce/kishore/jcr:content");
Node configNode = pageResource.adaptTo(Node.class);
configNode.getProperty("accesstoken");
log.info("Access token from cloud config"+configNode.getProperty("accesstoken"));
Session session = resourceResolver.adaptTo(Session.class);
session.save();
} catch (AccessDeniedException e) {
log.error(e.getMessage());
} catch (PathNotFoundException e) {
log.error(e.getMessage());
} catch (ItemExistsException e) {
log.error(e.getMessage());
} catch (ReferentialIntegrityException e) {
log.error(e.getMessage());
} catch (ConstraintViolationException e) {
log.error(e.getMessage());
} catch (InvalidItemStateException e) {
log.error(e.getMessage());
} catch (VersionException e) {
log.error(e.getMessage());
} catch (LockException e) {
log.error(e.getMessage());
} catch (NoSuchNodeTypeException e) {
log.error(e.getMessage());
} catch (LoginException e) {
log.error(e.getMessage());
} catch (RepositoryException e) {
log.error(e.getMessage());
}
}
}
No comments:
Post a Comment
If you have any doubts or questions, please let us know.