You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2011/04/30 02:16:32 UTC
svn commit: r1098030 - in /tapestry/tapestry5/trunk/tapestry-core/src:
main/java/org/apache/tapestry5/internal/services/
test/java/org/apache/tapestry5/internal/services/
Author: hlship
Date: Sat Apr 30 00:16:31 2011
New Revision: 1098030
URL: http://svn.apache.org/viewvc?rev=1098030&view=rev
Log:
TAP5-853: A little refactoring to how ComponentInstantiatorSourceImpl is constructed
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImplTest.java
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java?rev=1098030&r1=1098029&r2=1098030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java Sat Apr 30 00:16:31 2011
@@ -18,6 +18,7 @@ import java.util.Map;
import java.util.Set;
import org.apache.tapestry5.ComponentResources;
+import org.apache.tapestry5.SymbolConstants;
import org.apache.tapestry5.internal.InternalComponentResources;
import org.apache.tapestry5.internal.InternalConstants;
import org.apache.tapestry5.internal.event.InvalidationEventHubImpl;
@@ -25,12 +26,17 @@ import org.apache.tapestry5.internal.mod
import org.apache.tapestry5.internal.plastic.PlasticInternalUtils;
import org.apache.tapestry5.ioc.LoggerSource;
import org.apache.tapestry5.ioc.Resource;
+import org.apache.tapestry5.ioc.annotations.Inject;
+import org.apache.tapestry5.ioc.annotations.PostInjection;
+import org.apache.tapestry5.ioc.annotations.Primary;
+import org.apache.tapestry5.ioc.annotations.Symbol;
import org.apache.tapestry5.ioc.internal.services.ClassFactoryImpl;
import org.apache.tapestry5.ioc.internal.services.PlasticProxyFactoryImpl;
import org.apache.tapestry5.ioc.internal.util.ClasspathResource;
import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
import org.apache.tapestry5.ioc.internal.util.InternalUtils;
import org.apache.tapestry5.ioc.internal.util.URLChangeTracker;
+import org.apache.tapestry5.ioc.services.Builtin;
import org.apache.tapestry5.ioc.services.ClassFactory;
import org.apache.tapestry5.ioc.services.ClasspathURLConverter;
import org.apache.tapestry5.ioc.services.PlasticProxyFactory;
@@ -49,6 +55,7 @@ import org.apache.tapestry5.runtime.Comp
import org.apache.tapestry5.runtime.ComponentResourcesAware;
import org.apache.tapestry5.services.InvalidationEventHub;
import org.apache.tapestry5.services.UpdateListener;
+import org.apache.tapestry5.services.UpdateListenerHub;
import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2;
import org.apache.tapestry5.services.transform.TransformationSupport;
import org.slf4j.Logger;
@@ -91,13 +98,27 @@ public final class ComponentInstantiator
{ "." + InternalConstants.PAGES_SUBPACKAGE + ".", "." + InternalConstants.COMPONENTS_SUBPACKAGE + ".",
"." + InternalConstants.MIXINS_SUBPACKAGE + ".", "." + InternalConstants.BASE_SUBPACKAGE + "." };
- public ComponentInstantiatorSourceImpl(boolean productionMode, Logger logger, LoggerSource loggerSource,
- ClassLoader parent, ComponentClassTransformWorker2 transformerChain,
- InternalRequestGlobals internalRequestGlobals, ClasspathURLConverter classpathURLConverter)
+ public ComponentInstantiatorSourceImpl(@Inject
+ @Symbol(SymbolConstants.PRODUCTION_MODE)
+ boolean productionMode,
+
+ Logger logger,
+
+ LoggerSource loggerSource,
+
+ @Builtin
+ PlasticProxyFactory proxyFactory,
+
+ @Primary
+ ComponentClassTransformWorker2 transformerChain,
+
+ InternalRequestGlobals internalRequestGlobals,
+
+ ClasspathURLConverter classpathURLConverter)
{
super(productionMode);
- this.parent = parent;
+ this.parent = proxyFactory.getClassLoader();
this.transformerChain = transformerChain;
this.logger = logger;
this.loggerSource = loggerSource;
@@ -107,6 +128,12 @@ public final class ComponentInstantiator
initializeService();
}
+ @PostInjection
+ public void listenForUpdates(UpdateListenerHub hub)
+ {
+ hub.addUpdateListener(this);
+ }
+
public synchronized void checkForUpdates()
{
if (!changeTracker.containsChanges())
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java?rev=1098030&r1=1098029&r2=1098030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java Sat Apr 30 00:16:31 2011
@@ -22,7 +22,6 @@ import org.apache.tapestry5.internal.ser
import org.apache.tapestry5.internal.services.javascript.JavaScriptStackPathConstructor;
import org.apache.tapestry5.internal.structure.ComponentPageElementResourcesSource;
import org.apache.tapestry5.internal.structure.ComponentPageElementResourcesSourceImpl;
-import org.apache.tapestry5.ioc.LoggerSource;
import org.apache.tapestry5.ioc.ObjectLocator;
import org.apache.tapestry5.ioc.OrderedConfiguration;
import org.apache.tapestry5.ioc.ServiceBinder;
@@ -31,8 +30,6 @@ import org.apache.tapestry5.ioc.annotati
import org.apache.tapestry5.ioc.annotations.Primary;
import org.apache.tapestry5.ioc.annotations.Symbol;
import org.apache.tapestry5.ioc.internal.services.CtClassSource;
-import org.apache.tapestry5.ioc.services.Builtin;
-import org.apache.tapestry5.ioc.services.ClassFactory;
import org.apache.tapestry5.ioc.services.ClasspathURLConverter;
import org.apache.tapestry5.ioc.services.PropertyShadowBuilder;
import org.apache.tapestry5.services.ComponentClasses;
@@ -47,8 +44,6 @@ import org.apache.tapestry5.services.Req
import org.apache.tapestry5.services.ResponseCompressionAnalyzer;
import org.apache.tapestry5.services.UpdateListenerHub;
import org.apache.tapestry5.services.templates.ComponentTemplateLocator;
-import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2;
-import org.slf4j.Logger;
/**
* {@link org.apache.tapestry5.services.TapestryModule} has gotten too complicated and it is nice to demarkate public
@@ -107,6 +102,7 @@ public class InternalModule
binder.bind(AjaxFormUpdateController.class);
binder.bind(ResourceDigestManager.class, ResourceDigestManagerImpl.class);
binder.bind(RequestPageCache.class, NonPoolingRequestPageCacheImpl.class);
+ binder.bind(ComponentInstantiatorSource.class);
}
/**
@@ -125,29 +121,6 @@ public class InternalModule
return locator.autobuild(ActionRenderResponseGeneratorImpl.class);
}
- public ComponentInstantiatorSource buildComponentInstantiatorSource(@Builtin
- ClassFactory classFactory,
-
- @Primary
- ComponentClassTransformWorker2 transformerChain,
-
- Logger logger,
-
- LoggerSource loggerSource,
-
- InternalRequestGlobals internalRequestGlobals,
-
- ClasspathURLConverter classpathURLConverter)
- {
- ComponentInstantiatorSourceImpl source = new ComponentInstantiatorSourceImpl(productionMode, logger,
- loggerSource, classFactory.getClassLoader(), transformerChain, internalRequestGlobals,
- classpathURLConverter);
-
- updateListenerHub.addUpdateListener(source);
-
- return source;
- }
-
public PageLoader buildPageLoader(@Autobuild
PageLoaderImpl service,
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImplTest.java?rev=1098030&r1=1098029&r2=1098030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImplTest.java Sat Apr 30 00:16:31 2011
@@ -34,14 +34,9 @@ import org.apache.tapestry5.internal.tes
import org.apache.tapestry5.internal.transform.pages.BasicComponent;
import org.apache.tapestry5.ioc.Registry;
import org.apache.tapestry5.ioc.RegistryBuilder;
-import org.apache.tapestry5.ioc.internal.services.ClasspathURLConverterImpl;
-import org.apache.tapestry5.ioc.services.ClasspathURLConverter;
-import org.apache.tapestry5.ioc.services.PropertyAccess;
import org.apache.tapestry5.runtime.Component;
import org.apache.tapestry5.services.TapestryModule;
import org.apache.tapestry5.services.UpdateListenerHub;
-import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2;
-import org.slf4j.Logger;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@@ -56,16 +51,12 @@ public class ComponentInstantiatorSource
private static final String SYNTH_COMPONENT_CLASSNAME = "org.apache.tapestry5.internal.transform.pages.SynthComponent";
- private final ClasspathURLConverter converter = new ClasspathURLConverterImpl();
-
private File extraClasspath;
private ComponentInstantiatorSource source;
private Registry registry;
- private PropertyAccess access;
-
private ClassLoader extraLoader;
private String tempDir;
@@ -189,7 +180,6 @@ public class ComponentInstantiatorSource
registry = builder.build();
source = registry.getService(ComponentInstantiatorSource.class);
- access = registry.getService(PropertyAccess.class);
source.addPackage("org.apache.tapestry5.internal.transform.pages");
}
@@ -201,6 +191,5 @@ public class ComponentInstantiatorSource
registry = null;
source = null;
- access = null;
}
}