/** * Unget target. * Try tracking. * * @param user the target's user * @param used the target's owner * @return target */ protected static Object ungetTarget(ControllerContext user, ControllerContext used) { if (used instanceof ContextTracking) { ContextTracking ct = ContextTracking.class.cast(used); ct.ungetTarget(user); } return null; }
@Override public Set<ControllerContext> getInstantiatedContexts(Class<?> clazz) { if (controller instanceof ContextQueries) return ContextQueries.class.cast(controller).getInstantiatedContexts(clazz); else return Collections.emptySet(); }
public Set<ControllerContext> filter(Iterable<ControllerContext> contexts, ContextFilter filter) { if (contexts == null) return null; Set<ControllerContext> set = new HashSet<ControllerContext>(); for (ControllerContext context : contexts) { if (filter == null || filter.accepts(context)) set.add(context); } return set; }
/** * Get target. * * @param context the context to get target from * @param isInstallPhase is it install phase * @return context's target */ protected Object getTarget(ControllerContext context, boolean isInstallPhase) { Object target; if (isInstallPhase) { if (context instanceof ContextTracking && owner instanceof ControllerContext) target = ContextTracking.class.cast(context).getTarget(ControllerContext.class.cast(owner)); else target = context.getTarget(); } else { if (context instanceof ContextTracking && owner instanceof ControllerContext) target = ContextTracking.class.cast(context).ungetTarget(ControllerContext.class.cast(owner)); else target = context.getTarget(); } return target; }
public Object getTarget(ControllerContext context) { Object user = getActualUser(context); Object result = getTargetForActualUser(user); ContextTracker myTracker = getContextTracker(); if (myTracker != null) myTracker.incrementUsedBy(this, user); if (context instanceof ContextTracking) { ContextTracking ct = ContextTracking.class.cast(context); ContextTracker otherTracker = ct.getContextTracker(); if (otherTracker != null && otherTracker != myTracker) otherTracker.incrementUsedBy(this, user); } return result; }
public Object ungetTarget(ControllerContext context) { Object user = getActualUser(context); ContextTracker myTracker = getContextTracker(); if (myTracker != null) myTracker.decrementUsedBy(this, user); if (context instanceof ContextTracking) { ContextTracking ct = ContextTracking.class.cast(context); ContextTracker otherTracker = ct.getContextTracker(); if (otherTracker != null && otherTracker != myTracker) otherTracker.decrementUsedBy(this, user); } return ungetTargetForActualUser(user); }
/** * Get target. * Try tracking. * * @param user the target's user * @param used the target's owner * @return target */ protected static Object getTarget(ControllerContext user, ControllerContext used) { if (used instanceof ContextTracking) { ContextTracking ct = ContextTracking.class.cast(used); return ct.getTarget(user); } else { return used.getTarget(); } }
@Override public Set<ControllerContext> getContexts(Class<?> clazz, ControllerState state) { if (controller instanceof ContextQueries) return ContextQueries.class.cast(controller).getContexts(clazz, state); else return Collections.emptySet(); }
public Object getTarget(ContextTracker tracker) { Object result = getTargetForActualUser(tracker); if (tracker != null) { ContextTracker myTracker = getContextTracker(); if (myTracker != null && myTracker != tracker) myTracker.incrementUsedBy(this, tracker); tracker.incrementUsedBy(this, tracker); } return result; }
public Object ungetTarget(ContextTracker tracker) { if (tracker != null) { ContextTracker myTracker = getContextTracker(); if (myTracker != null && myTracker != tracker) myTracker.decrementUsedBy(this, tracker); tracker.decrementUsedBy(this, tracker); } return ungetTargetForActualUser(tracker); }
/** * Unregisters the MBean from the the MBeanServer. * * @param context The ServiceControllerContext we are uninstalling */ public void uninstallAction(ServiceControllerContext context) { ContextRegistry registry = getRegistry(context); registry.removeInstantiatedContext(context); MBeanServer server = context.getServiceController().getMBeanServer(); ObjectName objectName = context.getObjectName(); ServiceCreator.uninstall(server, objectName); ServiceMetaData metaData = context.getServiceMetaData(); if (metaData != null) context.setTarget(null); } }
/** * Creates an instance of the MBean from the metadata stored in the context, * and registers it in the MBeanServer. * * @param context The ServiceControllerContext we are installing */ public void installAction(ServiceControllerContext context) throws Throwable { MBeanServer server = context.getServiceController().getMBeanServer(); ObjectName objectName = context.getObjectName(); ServiceMetaData metaData = context.getServiceMetaData(); Object mbean = context.getTarget(); ServiceInstance instance = ServiceCreator.install(server, objectName, metaData, mbean); context.setTarget(instance.getResource()); ContextRegistry registry = getRegistry(context); registry.addInstantiatedContext(context); }