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;
     }
 }