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