ComponentInstantiatorSourceImpl implements ComponentInstantiatorSource, UpdateListener,
        Runnable, PlasticManagerDelegate, PlasticClassListener { public boolean exists(String className) { return parent.getResource(PlasticInternalUtils.toClassPath(className)) != null; } ComponentInstantiatorSourceImpl(Logger logger,

                                           LoggerSource loggerSource,

                                           @Builtin
                                           PlasticProxyFactory proxyFactory,

                                           @Primary
                                           ComponentClassTransformWorker2 transformerChain,

                                           ClasspathURLConverter classpathURLConverter,

                                           OperationTracker tracker,

                                           Map<String, ControlledPackageType> configuration,

                                           @Symbol(SymbolConstants.PRODUCTION_MODE)
                                           boolean productionMode,

                                           ComponentClassResolver resolver,

                                           InternalComponentInvalidationEventHub invalidationHub); @PostInjection void listenForUpdates(UpdateListenerHub hub); synchronized void checkForUpdates(); void forceComponentInvalidation(); void run(); Instantiator getInstantiator(final String className); boolean exists(String className); PlasticProxyFactory getProxyFactory(); void transform(final PlasticClass plasticClass); ClassInstantiator<T> configureInstantiator(String className, ClassInstantiator<T> instantiator); void classWillLoad(PlasticClassEvent event);  }
@Test public void component_class_reload() throws Exception { assertFalse(source.exists(SYNTH_COMPONENT_CLASSNAME)); createSynthComponentClass("Original"); assertTrue(source.exists(SYNTH_COMPONENT_CLASSNAME)); getMocksControl().resetToNice(); Named named = (Named) createComponent(SYNTH_COMPONENT_CLASSNAME); assertEquals(named.getName(), "Original"); long dtm = helper.readDTM(SYNTH_COMPONENT_CLASSNAME); while (true) { createSynthComponentClass("Updated"); if (helper.readDTM(SYNTH_COMPONENT_CLASSNAME) != dtm) break; } UpdateListenerHub hub = registry.getService("UpdateListenerHub", UpdateListenerHub.class); hub.fireCheckForUpdates(); named = (Named) createComponent(SYNTH_COMPONENT_CLASSNAME); assertEquals(named.getName(), "Updated"); }