Author: hlship
Date: Wed Nov 29 16:19:14 2006
New Revision: 480788

URL: http://svn.apache.org/viewvc?view=rev&rev=480788
Log:
Add some class factory stats to the Localization page, just for the heck of it.

Modified:
    
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassFactoryImpl.java
    
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Localization.java
    
tapestry/tapestry5/tapestry-core/trunk/src/test/resources/org/apache/tapestry/integration/app1/pages/Localization.html

Modified: 
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassFactoryImpl.java?view=diff&rev=480788&r1=480787&r2=480788
==============================================================================
--- 
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassFactoryImpl.java
 (original)
+++ 
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassFactoryImpl.java
 Wed Nov 29 16:19:14 2006
@@ -12,69 +12,67 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry.internal.services;
-
-import org.apache.commons.logging.Log;
-import org.apache.tapestry.events.InvalidationListener;
+package org.apache.tapestry.internal.services;
+
+import org.apache.commons.logging.Log;
+import org.apache.tapestry.events.InvalidationListener;
 import org.apache.tapestry.ioc.internal.services.ClassFactoryImpl;
-import org.apache.tapestry.ioc.services.ClassFab;
-import org.apache.tapestry.ioc.services.ClassFactory;
-
-/**
- * ClassFactory implementation that works with the class loader created for 
instantiating
- * transformed component classes. Works with the
- * [EMAIL PROTECTED] 
org.apache.tapestry.internal.services.ComponentInstantiatorSource} to handle
- * [EMAIL PROTECTED] 
org.apache.tapestry.events.InvalidationListener#objectWasInvalidated() 
invalidations of that class loader}.
- * 
- * 
- */
-public class ComponentClassFactoryImpl implements ClassFactory, 
InvalidationListener
-{
-    private final Log _log;
-
-    private final ComponentInstantiatorSource _source;
-
-    private ClassFactory _innerFactory;
-
-    public ComponentClassFactoryImpl(Log log, ComponentInstantiatorSource 
source)
-    {
-        _log = log;
-        _source = source;
-
-        source.addInvalidationListener(this);
-    }
-
-    private synchronized ClassFactory getInnerFactory()
-    {
-        if (_innerFactory == null)
-            _innerFactory = new ClassFactoryImpl(_source.getClassLoader(), 
_log);
-
-        return _innerFactory;
-    }
-
-    public ClassLoader getClassLoader()
-    {
-        return getInnerFactory().getClassLoader();
-    }
-
-    public int getCreatedClassCount()
-    {
-        return getInnerFactory().getCreatedClassCount();
-    }
-
-    public ClassFab newClass(Class serviceInterface)
-    {
-        return getInnerFactory().newClass(serviceInterface);
-    }
-
-    public ClassFab newClass(String name, Class superClass)
-    {
-        return getInnerFactory().newClass(name, superClass);
-    }
-
-    public synchronized void objectWasInvalidated()
-    {
-        _innerFactory = null;
-    }
-
-}
+import org.apache.tapestry.ioc.services.ClassFab;
+import org.apache.tapestry.ioc.services.ClassFactory;
+
+/**
+ * ClassFactory implementation that works with the class loader created for 
instantiating
+ * transformed component classes. Works with the
+ * [EMAIL PROTECTED] 
org.apache.tapestry.internal.services.ComponentInstantiatorSource} to handle
+ * [EMAIL PROTECTED] 
org.apache.tapestry.events.InvalidationListener#objectWasInvalidated() 
invalidations of that class loader}.
+ */
+public class ComponentClassFactoryImpl implements ClassFactory, 
InvalidationListener
+{
+    private final Log _log;
+
+    private final ComponentInstantiatorSource _source;
+
+    private ClassFactory _innerFactory;
+
+    public ComponentClassFactoryImpl(Log log, ComponentInstantiatorSource 
source)
+    {
+        _log = log;
+        _source = source;
+
+        source.addInvalidationListener(this);
+    }
+
+    private synchronized ClassFactory getInnerFactory()
+    {
+        if (_innerFactory == null)
+            _innerFactory = new ClassFactoryImpl(_source.getClassLoader(), 
_log);
+
+        return _innerFactory;
+    }
+
+    public ClassLoader getClassLoader()
+    {
+        return getInnerFactory().getClassLoader();
+    }
+
+    public int getCreatedClassCount()
+    {
+        return getInnerFactory().getCreatedClassCount();
+    }
+
+    public ClassFab newClass(Class serviceInterface)
+    {
+        return getInnerFactory().newClass(serviceInterface);
+    }
+
+    public ClassFab newClass(String name, Class superClass)
+    {
+        return getInnerFactory().newClass(name, superClass);
+    }
+
+    public synchronized void objectWasInvalidated()
+    {
+        _innerFactory = null;
+    }
+
+}

Modified: 
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Localization.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Localization.java?view=diff&rev=480788&r1=480787&r2=480788
==============================================================================
--- 
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Localization.java
 (original)
+++ 
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Localization.java
 Wed Nov 29 16:19:14 2006
@@ -17,6 +17,7 @@
 import org.apache.tapestry.annotations.ComponentClass;
 import org.apache.tapestry.annotations.Inject;
 import org.apache.tapestry.ioc.Messages;
+import org.apache.tapestry.ioc.services.ClassFactory;
 
 @ComponentClass
 public class Localization
@@ -24,8 +25,25 @@
     @Inject
     private Messages _messages;
 
+    @Inject("service:tapestry.ioc.ClassFactory")
+    private ClassFactory _iocClassFactory;
+
+    @Inject("service:tapestry.ComponentClassFactory")
+    private ClassFactory _componentClassFactory;
+
     public String getInjectedMessage()
     {
         return _messages.get("via-inject");
     }
+
+    public ClassFactory getComponentClassFactory()
+    {
+        return _componentClassFactory;
+    }
+
+    public ClassFactory getIocClassFactory()
+    {
+        return _iocClassFactory;
+    }
+
 }

Modified: 
tapestry/tapestry5/tapestry-core/trunk/src/test/resources/org/apache/tapestry/integration/app1/pages/Localization.html
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/resources/org/apache/tapestry/integration/app1/pages/Localization.html?view=diff&rev=480788&r1=480787&r2=480788
==============================================================================
--- 
tapestry/tapestry5/tapestry-core/trunk/src/test/resources/org/apache/tapestry/integration/app1/pages/Localization.html
 (original)
+++ 
tapestry/tapestry5/tapestry-core/trunk/src/test/resources/org/apache/tapestry/integration/app1/pages/Localization.html
 Wed Nov 29 16:19:14 2006
@@ -1,12 +1,29 @@
 <t:comp type="Border" 
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
     <h1>Localization</h1>
-    
 
-<p>Demonstrates a few ways that component message catalogs can be accessed in 
code and in the template.</p>
-    
-    
-    <p>
-        Via injected Messages property: [${injectedMessage}]
-    </p>
-    
+
+    <p>Demonstrates a few ways that component message catalogs can be accessed 
in code and in the
+        template.</p>
+
+
+    <p> Via injected Messages property: [${injectedMessage}] </p>
+
+
+    <h2>Fabricated classes:</h2>
+
+    <p> In addition to transforming component classes as they are loaded, 
Tapestry will create new
+        classes out of whole cloth. Although this has nothing to do with 
Localization, this was a
+        handy page to stick these values (because I was curious). </p>
+
+
+    <dl>
+        <dt>IOC Layer: ${iocClassFactory.createdClassCount}</dt>
+        <dd> Proxies and interceptors. </dd>
+
+        <dt> Component Layer: ${componentClassFactory.createdClassCount} </dt>
+        <dd> For the most part, this is going to be prop: bindings. </dd>
+    </dl>
+
+
+
 </t:comp>


Reply via email to