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>