You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2007/05/05 01:25:57 UTC
svn commit: r535414 - in /tapestry/tapestry4/trunk/tapestry-framework/src:
descriptor/META-INF/ java/org/apache/tapestry/
java/org/apache/tapestry/internal/ java/org/apache/tapestry/pageload/
java/org/apache/tapestry/services/impl/
Author: jkuhnert
Date: Fri May 4 16:25:56 2007
New Revision: 535414
URL: http://svn.apache.org/viewvc?view=rev&rev=535414
Log:
Yourkit profiling.
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.render.xml
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/Component.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/EventConnectionVisitor.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/InfrastructureImpl.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/InitializationParameterHolderPropertySource.java
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.render.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.render.xml?view=diff&rev=535414&r1=535413&r2=535414
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.render.xml (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.render.xml Fri May 4 16:25:56 2007
@@ -36,8 +36,7 @@
</configuration-point>
- <service-point id="ComponentEventConnectionWorker"
- interface="org.apache.tapestry.services.ComponentRenderWorker">
+ <service-point id="ComponentEventConnectionWorker" interface="org.apache.tapestry.services.ComponentRenderWorker">
Wires javascript events to components, adds javascript contributions to
render.
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java?view=diff&rev=535414&r1=535413&r2=535414
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java Fri May 4 16:25:56 2007
@@ -144,7 +144,8 @@
/** @since 4.0 */
private IContainedComponent _containedComponent;
-
+
+ private boolean _hasEvents;
public void addAsset(String name, IAsset asset)
{
@@ -220,6 +221,16 @@
public IRender[] getInnerRenderers()
{
return null;
+ }
+
+ public boolean hasEvents()
+ {
+ return _hasEvents;
+ }
+
+ public void setHasEvents(boolean hasEvents)
+ {
+ _hasEvents = hasEvents;
}
/**
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/Component.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/Component.java?view=diff&rev=535414&r1=535413&r2=535414
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/Component.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/Component.java Fri May 4 16:25:56 2007
@@ -28,4 +28,19 @@
* @return The inner renderers if this component supports more than one type, null otherwise.
*/
IRender[] getInnerRenderers();
+
+ /**
+ * Checks if this component has been targeted / connected to for client side
+ * event listening via @EventListener.
+ *
+ * @return True if anything has targeted this component, false otherwise.
+ */
+ boolean hasEvents();
+
+ /**
+ * Sets whether or not this component has events.
+ *
+ * @param hasEvents Whether or not this component has connected events.
+ */
+ void setHasEvents(boolean hasEvents);
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/EventConnectionVisitor.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/EventConnectionVisitor.java?view=diff&rev=535414&r1=535413&r2=535414
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/EventConnectionVisitor.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/EventConnectionVisitor.java Fri May 4 16:25:56 2007
@@ -28,7 +28,7 @@
public void visitComponent(IComponent component)
{
checkComponentPage(component);
-
+
Map events = component.getSpecification().getComponentEvents();
Set keySet = events.keySet();
String[] compIds = (String[]) keySet.toArray(new String[keySet.size()]);
@@ -45,6 +45,9 @@
if (comp == null)
continue;
+ if (Component.class.isInstance(comp))
+ ((Component)comp).setHasEvents(true);
+
// wire up with idPath
String idPath = comp.getExtendedId();
@@ -59,6 +62,12 @@
events = component.getSpecification().getElementEvents();
Iterator it = events.keySet().iterator();
+
+ // for efficiency later in ComponentEventConnectionWorker
+
+ if (events.size() > 0 && Component.class.isInstance(component)) {
+ ((Component)component).setHasEvents(true);
+ }
while (it.hasNext())
{
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java?view=diff&rev=535414&r1=535413&r2=535414
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java Fri May 4 16:25:56 2007
@@ -22,6 +22,7 @@
import org.apache.tapestry.engine.IEngineService;
import org.apache.tapestry.engine.IScriptSource;
import org.apache.tapestry.html.Body;
+import org.apache.tapestry.internal.Component;
import org.apache.tapestry.internal.event.ComponentEventProperty;
import org.apache.tapestry.internal.event.EventBoundListener;
import org.apache.tapestry.internal.event.IComponentEventInvoker;
@@ -76,8 +77,12 @@
{
if (cycle.isRewinding() || TapestryUtils.getOptionalPageRenderSupport(cycle) == null)
return;
-
- // Don't render fields being pre-rendered, otherwise we'll render twice
+
+ Component icomp = Component.class.isInstance(component) ? (Component)component : null;
+ if (icomp != null && !icomp.hasEvents() && !IForm.class.isInstance(component))
+ return;
+
+ // Don't render fields being pre-rendered, otherwise we'll render twice
IComponent field = (IComponent)cycle.getAttribute(TapestryUtils.FIELD_PRERENDER);
if (field != null && field == component)
return;
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/InfrastructureImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/InfrastructureImpl.java?view=diff&rev=535414&r1=535413&r2=535414
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/InfrastructureImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/InfrastructureImpl.java Fri May 4 16:25:56 2007
@@ -14,12 +14,6 @@
package org.apache.tapestry.services.impl;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.hivemind.ClassResolver;
import org.apache.hivemind.ErrorLog;
@@ -42,25 +36,15 @@
import org.apache.tapestry.listener.ListenerInvoker;
import org.apache.tapestry.listener.ListenerMapSource;
import org.apache.tapestry.markup.MarkupWriterSource;
-import org.apache.tapestry.services.ClassFinder;
-import org.apache.tapestry.services.ComponentMessagesSource;
-import org.apache.tapestry.services.ComponentPropertySource;
-import org.apache.tapestry.services.CookieSource;
-import org.apache.tapestry.services.DataSqueezer;
-import org.apache.tapestry.services.Infrastructure;
-import org.apache.tapestry.services.LinkFactory;
-import org.apache.tapestry.services.ObjectPool;
-import org.apache.tapestry.services.RequestCycleFactory;
-import org.apache.tapestry.services.ResetEventHub;
-import org.apache.tapestry.services.ResponseRenderer;
-import org.apache.tapestry.services.ServiceMap;
-import org.apache.tapestry.services.TemplateSource;
+import org.apache.tapestry.services.*;
import org.apache.tapestry.spec.IApplicationSpecification;
import org.apache.tapestry.web.WebContext;
import org.apache.tapestry.web.WebContextResource;
import org.apache.tapestry.web.WebRequest;
import org.apache.tapestry.web.WebResponse;
+import java.util.*;
+
/**
* Allows access to selected HiveMind services.
*
@@ -91,6 +75,8 @@
private ThreadLocale _threadLocale;
+ private String _outputEncoding;
+
public void setLocale(Locale locale)
{
_threadLocale.setLocale(locale);
@@ -220,8 +206,12 @@
public String getOutputEncoding()
{
- return getApplicationPropertySource().getPropertyValue(
- "org.apache.tapestry.output-encoding");
+ if (_outputEncoding != null)
+ return _outputEncoding;
+
+ _outputEncoding = getApplicationPropertySource().getPropertyValue("org.apache.tapestry.output-encoding");
+
+ return _outputEncoding;
}
public MarkupWriterSource getMarkupWriterSource()
@@ -294,8 +284,7 @@
Object result = _properties.get(propertyName);
if (result == null)
- throw new ApplicationRuntimeException(ImplMessages
- .missingInfrastructureProperty(propertyName));
+ throw new ApplicationRuntimeException(ImplMessages.missingInfrastructureProperty(propertyName));
return result;
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/InitializationParameterHolderPropertySource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/InitializationParameterHolderPropertySource.java?view=diff&rev=535414&r1=535413&r2=535414
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/InitializationParameterHolderPropertySource.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/InitializationParameterHolderPropertySource.java Fri May 4 16:25:56 2007
@@ -18,8 +18,7 @@
import org.apache.tapestry.web.InitializationParameterHolder;
/**
- * Searches for property values inside objects that implement
- * {@link org.apache.tapestry.web.InitializationParameterHolder}.
+ * Searches for property values inside objects that implement {@link org.apache.tapestry.web.InitializationParameterHolder}.
*
* @author Howard Lewis Ship
* @since 4.0