ActionManagerImpl(String name, ThrottledTaskRunner taskRunner, ResourceResolver resolver, int saveInterval, int priority) throws LoginException { this.name = name; this.taskRunner = taskRunner; this.saveInterval = saveInterval; baseResolver = resolver.clone(null); currentPath = new ThreadLocal<>(); failures = new ArrayList<>(); this.priority = priority; }
ActionManagerImpl(String name, ThrottledTaskRunner taskRunner, ResourceResolver resolver, int saveInterval) throws LoginException { this.name = name; this.taskRunner = taskRunner; this.saveInterval = saveInterval; baseResolver = resolver.clone(null); currentPath = new ThreadLocal<String>(); failures = new ArrayList<Failure>(); }
/** * Wraps and returns the {@code ResourceResolver} obtained by calling {@code clone} on the wrapped resource resolver. * * @param authenticationInfo The map or credential data to overlay the * original credential data with for the creation of a new * resource resolver. This may be <code>null</code> in which case * the same credential data is used as was used to create this * instance. * @return a wrapped resource resolver */ @NotNull @Override public ResourceResolver clone(Map<String, Object> authenticationInfo) throws LoginException { ResourceResolver toWrap = wrapped.clone(authenticationInfo); return new ResourceResolverWrapper(toWrap); }
private ReusableResolver getResourceResolver() throws LoginException { ReusableResolver resolver = currentResolver.get(); if (resolver == null || !resolver.getResolver().isLive()) { resolver = new ReusableResolver(baseResolver.clone(null), saveInterval); currentResolver.set(resolver); resolvers.add(resolver); } return resolver; }
private ReusableResolver getResourceResolver() throws LoginException { ReusableResolver resolver = currentResolver.get(); if (resolver == null || !resolver.getResolver().isLive()) { resolver = new ReusableResolver(baseResolver.clone(null), saveInterval); currentResolver.set(resolver); resolvers.add(resolver); } return resolver; }
/** * @see org.apache.sling.api.request.SlingRequestListener#onEvent(org.apache.sling.api.request.SlingRequestEvent) */ @Override public void onEvent(final SlingRequestEvent event) { if ( event.getType() == SlingRequestEvent.EventType.EVENT_INIT ) { try { this.perThreadScriptResolver.set(this.sharedScriptResolver.clone(null)); } catch (final LoginException e) { LOGGER.error("Unable to create new script resolver clone", e); } } else if ( event.getType() == SlingRequestEvent.EventType.EVENT_DESTROY ) { final ResourceResolver resolver = this.perThreadScriptResolver.get(); if ( resolver != null ) { this.perThreadScriptResolver.remove(); resolver.close(); } } }
@Override public void run() { try { plumber.execute(pipe.getResource().getResourceResolver().clone(null), pipe, null, new ThreadOutputWriter(), true); } catch (Exception e) { log.error("Error while running pipe %s", pipe.getName(), e); } } }
final ResourceResolver anon1 = anon0.clone(null); final Session anon1Session = anon1.adaptTo(Session.class); assertEquals(anon0.getUserID(), anon1.getUserID()); admin0Cred.put(ResourceResolverFactory.USER, "admin"); admin0Cred.put(ResourceResolverFactory.PASSWORD, "admin".toCharArray()); final ResourceResolver admin0 = anon0.clone(admin0Cred); final Session admin0Session = admin0.adaptTo(Session.class); assertEquals("admin", admin0.getUserID()); final ResourceResolver anon2 = anon0.clone(anon2Cred); assertEquals("anonymous", anon2.getUserID()); anon2.close(); admin1Cred.put(ResourceResolverFactory.USER, "admin"); admin1Cred.put(ResourceResolverFactory.PASSWORD, "admin".toCharArray()); final ResourceResolver admin1 = anon0.clone(admin1Cred); assertEquals("admin", admin1.getUserID()); admin1.close();
final ResourceResolver admin1 = admin0.clone(null); final Session admin1Session = admin1.adaptTo(Session.class); assertEquals(admin0.getUserID(), admin1.getUserID()); final ResourceResolver anon0 = admin0.clone(anon0Cred); final Session anon0Session = anon0.adaptTo(Session.class); assertEquals("anonymous", anon0.getUserID()); final ResourceResolver admin2 = admin0.clone(admin2Cred); assertEquals("admin", admin2.getUserID()); admin2.close(); final ResourceResolver anon1 = admin0.clone(anon1Cred); assertEquals("anonymous", anon1.getUserID()); anon1.close();