Skip to content

Instantly share code, notes, and snippets.

@yupadhyay
Last active August 29, 2015 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save yupadhyay/e33a7522591c090a039c to your computer and use it in GitHub Desktop.
Save yupadhyay/e33a7522591c090a039c to your computer and use it in GitHub Desktop.
ReadService for Non admin resource Resolver
@Service
@Component(immediate=true)
public class ReadServiceImpl implements ReadService{
private final Logger log = LoggerFactory.getLogger(getClass());
@Reference
private ResourceResolverFactory resolverFactory;
//If you are planning to use repository session
//@Reference
//private SlingRespository repository;
//private Session session = null;
@Activate
public void doAReadOperation(ComponentContext ctx) {
Map<String, Object> param = new HashMap<String, Object>();
param.put(ResourceResolverFactory.SUBSERVICE, "readService");
ResourceResolver resolver = null;
try {
//Deprecated Method using admin resolver
//resolver = resolverFactory.getAdministrativeResourceResolver(null);
resolver = resolverFactory.getServiceResourceResolver(param);
//If you are planning to use repository session instead of repository.loginAdministrative
//session = repository.getService("readService",null);
log.info(resolver.getUserID());
Resource res = resolver.getResource("/content/datatoreadandwrite/jcr:content");
ValueMap readMap = res.getValueMap();
log.info(readMap.get("jcr:primaryType", ""));
ModifiableValueMap modMap = res.adaptTo(ModifiableValueMap.class);
if(modMap != null){
modMap.put("myKey", "myValue");
resolver.commit();
log.info("Successfully saved");
}
} catch (LoginException e) {
log.error("LoginException",e);
} catch (PersistenceException e) {
log.error("LoginException",e);
}finally{
if(resolver != null && resolver.isLive()){
resolver.close();
}
//Close session if you are using session
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment