@Override public <T> T invoke(String description, Invokable<T> operation) { return operationTracker.invoke(description, operation); }
@Override public <T> T invoke(String description, Invokable<T> operation) { return operationTracker.invoke(description, operation); }
public <T> T invoke(String description, Invokable<T> operation) { return tracker.invoke(description, operation); }
@Override public Object createObject() { Invokable<Object> operation = new Invokable<Object>() { @Override public Object invoke() { return delegate.createObject(); } }; return tracker.invoke(message, operation); } }
@Override public Object createObject() { Invokable<Object> operation = new Invokable<Object>() { @Override public Object invoke() { return delegate.createObject(); } }; return tracker.invoke(message, operation); } }
public static <T> ObjectCreator<T> createMethodInvocationPlan(final OperationTracker tracker, final ObjectLocator locator, final InjectionResources resources, final Logger logger, final String description, final Object instance, final Method method) { return tracker.invoke("Creating plan to invoke " + method, new Invokable<ObjectCreator<T>>() { @Override public ObjectCreator<T> invoke() { ObjectCreator[] methodParameters = calculateParametersForMethod(method, locator, resources, tracker); Invokable<T> core = new MethodInvoker<T>(instance, method, methodParameters); Invokable<T> wrapped = logger == null ? core : new LoggingInvokableWrapper<T>(logger, description, core); return new ConstructionPlan(tracker, description, wrapped); } }); }
public static <T> ObjectCreator<T> createMethodInvocationPlan(final OperationTracker tracker, final ObjectLocator locator, final InjectionResources resources, final Logger logger, final String description, final Object instance, final Method method) { return tracker.invoke("Creating plan to invoke " + method, new Invokable<ObjectCreator<T>>() { @Override public ObjectCreator<T> invoke() { ObjectCreator[] methodParameters = calculateParametersForMethod(method, locator, resources, tracker); Invokable<T> core = new MethodInvoker<T>(instance, method, methodParameters); Invokable<T> wrapped = logger == null ? core : new LoggingInvokableWrapper<T>(logger, description, core); return new ConstructionPlan(tracker, description, wrapped); } }); }
private Object createInstance() { return tracker.invoke(String.format("Reloading class %s.", implementationClassName), new Invokable<Object>() { @Override public Object invoke() { Class reloadedClass = reloadImplementationClass(); return createInstance(reloadedClass); } }); }
private ComponentAssembler createAssembler(final String className, final ComponentResourceSelector selector) { return tracker.invoke("Creating ComponentAssembler for " + className, new Invokable<ComponentAssembler>() { public ComponentAssembler invoke() { Instantiator instantiator = instantiatorSource.getInstantiator(className); ComponentModel componentModel = instantiator.getModel(); ComponentTemplate template = templateSource.getTemplate(componentModel, selector); ComponentPageElementResources resources = resourcesSource.get(selector); ComponentAssembler assembler = new ComponentAssemblerImpl(PageLoaderImpl.this, instantiatorSource, componentClassResolver, instantiator, resources, tracker, template.usesStrictMixinParameters()); // "Program" the assembler by adding actions to it. The actions interact with a // PageAssembly object (a fresh one for each new page being created). programAssembler(assembler, template); return assembler; } }); }
private Object createInstance() { return tracker.invoke(String.format("Reloading class %s.", implementationClassName), new Invokable<Object>() { @Override public Object invoke() { Class reloadedClass = reloadImplementationClass(); return createInstance(reloadedClass); } }); }
public ComponentTemplate parseTemplate(final Resource templateResource) { if (!templateResource.exists()) throw new RuntimeException(String.format("Template resource %s does not exist.", templateResource)); return tracker.invoke("Parsing component template " + templateResource, new Invokable<ComponentTemplate>() { public ComponentTemplate invoke() { return new SaxTemplateParser(templateResource, configuration).parse(defaultCompressWhitespace); } }); }
@Override public T createObject() { T result = tracker.invoke(description, instanceConstructor); if (initializationPlans != null) { executeInitializationPLans(result); } return result; }
@Override public T createObject() { T result = tracker.invoke(description, instanceConstructor); if (initializationPlans != null) { executeInitializationPLans(result); } return result; }
public Object get(final ComponentEvent event, final int index) { // Hopefully this will not be too much overhead; it's really nice to be able to track what parameter // caused a failure. return operationTracker.invoke("Obtaining value for parameter #" + (index + 1) + " of "+ methodIdentifier, new ParameterExtractor(providers, index, event)); } }
public ComponentPageElement assembleRootComponent(final Page page) { return tracker.invoke("Assembling root component for page " + page.getName(), new Invokable<ComponentPageElement>() { public ComponentPageElement invoke() { return performAssembleRootComponent(page); } }); }
@Override public <T> T provide(final Class<T> objectType, final AnnotationProvider annotationProvider, final ObjectLocator locator, final boolean required) { return tracker.invoke(String.format("Resolving object of type %s using MasterObjectProvider", PlasticUtils.toTypeName(objectType)), new Invokable<T>() { @Override public T invoke() { for (ObjectProvider provider : configuration) { T result = provider.provide(objectType, annotationProvider, locator); if (result != null) return result; } // If required, then we must obtain it the hard way, by // seeing if there's a single service that implements the interface. if (required) return locator.getService(objectType); return null; } }); } }
@Override public Object createObject() { return resources.getTracker().invoke( "Creating Spring ApplicationContext via ContextLoader", new Invokable<Object>() { @Override public Object invoke() { resources.getLogger().info( String.format("Starting Spring (version %s)", SpringVersion .getVersion())); WebApplicationContext context = loader .initWebApplicationContext(servletContext); shutdownHub.addRegistryShutdownListener(shutdownListener); applicationContextCreated.set(true); return context; } }); }
@Override public Object createObject() { return resources.getTracker().invoke( "Creating Spring ApplicationContext via ContextLoader", new Invokable<Object>() { @Override public Object invoke() { resources.getLogger().info( String.format("Starting Spring (version %s)", SpringVersion .getVersion())); WebApplicationContext context = loader .initWebApplicationContext(servletContext); shutdownHub.addRegistryShutdownListener(shutdownListener); applicationContextCreated.set(true); return context; } }); }
@Override public <T> T invoke(String description, Invokable<T> operation) { try { return get().invoke(description, operation); } finally { cleanup(); } }
@Override public <T> T invoke(String description, Invokable<T> operation) { try { return get().invoke(description, operation); } finally { cleanup(); } }