You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by mp...@apache.org on 2005/08/25 23:17:41 UTC

svn commit: r240139 - in /cocoon/gsoc/mpfingsthorn/forms: WEB-INF/xconf/ java/org/apache/cocoon/forms/ java/org/apache/cocoon/forms/formmodel/ java/org/apache/cocoon/forms/formmodel/library/ samples/library/ samples/library/forms/

Author: mpfingsthorn
Date: Thu Aug 25 14:17:20 2005
New Revision: 240139

URL: http://svn.apache.org/viewcvs?rev=240139&view=rev
Log:
Caching fixed, now propagates down the heirarchy of libraries to check if a form needs to be rebuilt.

Modified:
    cocoon/gsoc/mpfingsthorn/forms/WEB-INF/xconf/cocoon-forms.xconf
    cocoon/gsoc/mpfingsthorn/forms/WEB-INF/xconf/forms.logkit
    cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/DefaultCacheManager.java
    cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/DefaultFormManager.java
    cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/AbstractWidgetDefinition.java
    cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/library/Library.java
    cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/library/LibraryManagerImpl.java
    cocoon/gsoc/mpfingsthorn/forms/samples/library/forms/form1_model.xml
    cocoon/gsoc/mpfingsthorn/forms/samples/library/sitemap.xmap

Modified: cocoon/gsoc/mpfingsthorn/forms/WEB-INF/xconf/cocoon-forms.xconf
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/WEB-INF/xconf/cocoon-forms.xconf?rev=240139&r1=240138&r2=240139&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/WEB-INF/xconf/cocoon-forms.xconf (original)
+++ cocoon/gsoc/mpfingsthorn/forms/WEB-INF/xconf/cocoon-forms.xconf Thu Aug 25 14:17:20 2005
@@ -46,6 +46,8 @@
       <binding name="union" src="org.apache.cocoon.forms.binding.UnionJXPathBindingBuilder"/>
     </bindings>
   </forms-binding>
+  
+  <forms-cachemanager logger="forms.cache"/>
 
   <!--+
       | forms's datatypes and validation rules.
@@ -135,7 +137,7 @@
   <!--+
       | forms's FormManager component
       +-->
-  <forms-formmanager>
+  <forms-formmanager logger="forms.manager">
     <widgets>
       <widget name="form" src="org.apache.cocoon.forms.formmodel.FormDefinitionBuilder"/>
       <widget name="import" src="org.apache.cocoon.forms.formmodel.ImportDefinitionBuilder"/>

Modified: cocoon/gsoc/mpfingsthorn/forms/WEB-INF/xconf/forms.logkit
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/WEB-INF/xconf/forms.logkit?rev=240139&r1=240138&r2=240139&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/WEB-INF/xconf/forms.logkit (original)
+++ cocoon/gsoc/mpfingsthorn/forms/WEB-INF/xconf/forms.logkit Thu Aug 25 14:17:20 2005
@@ -30,14 +30,14 @@
       <append>false</append>
     </cocoon>
   </targets>
-  <!--categories>
+  <categories>
     <category log-level="DEBUG" name="forms">
       <log-target id-ref="forms" />
     </category>
-  </categories-->
-  <categories>
+  </categories>
+  <!--categories>
     <category log-level="@loglevel@" name="forms">
       <log-target id-ref="forms" />
     </category>
-  </categories>
+  </categories-->
 </logkit>

Modified: cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/DefaultCacheManager.java
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/DefaultCacheManager.java?rev=240139&r1=240138&r2=240139&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/DefaultCacheManager.java (original)
+++ cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/DefaultCacheManager.java Thu Aug 25 14:17:20 2005
@@ -68,6 +68,10 @@
         // If object is not in the cache then return null
         Object[] objectAndValidity = (Object[]) this.cache.get(key);
         if (objectAndValidity == null) {
+        	
+        	if(getLogger().isDebugEnabled())
+        		getLogger().debug(this+" Cache MISS: "+key);
+        	
             return null;
         }
 
@@ -81,9 +85,16 @@
 
         // If stored object is not valid then remove object from cache and return null
         if (valid != SourceValidity.VALID) {
+        	
+        	if(getLogger().isDebugEnabled())
+        		getLogger().debug(this+" Cache MISS (INVALID): "+key);
+        	
             this.cache.remove(key);
             return null;
         }
+        
+        if(getLogger().isDebugEnabled())
+    		getLogger().debug(this+" Cache HIT: "+key);
 
         // If valid then return cached object
         return objectAndValidity[0];
@@ -93,9 +104,14 @@
         final String key = prefix + source.getURI();
         final SourceValidity validity = source.getValidity();
         if (validity != null) {
+        	
+        	if(getLogger().isDebugEnabled())
+        		getLogger().debug(this+" Cache PUT: "+key);
+        	
             Object[] objectAndValidity = {object,  validity};
             this.cache.put(key, objectAndValidity);
-        }
+        } else if(getLogger().isDebugEnabled())
+    		getLogger().debug(this+" NO Cache PUT (no source validity!): "+key);
     }
 
     /**

Modified: cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/DefaultFormManager.java
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/DefaultFormManager.java?rev=240139&r1=240138&r2=240139&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/DefaultFormManager.java (original)
+++ cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/DefaultFormManager.java Thu Aug 25 14:17:20 2005
@@ -142,7 +142,15 @@
 
     public FormDefinition getFormDefinition(Source source) throws Exception {
         FormDefinition formDefinition = (FormDefinition)this.cacheManager.get(source, PREFIX);
+        
+        if(formDefinition != null && formDefinition.getLocalLibrary().dependenciesHaveChanged())
+        	formDefinition = null; // invalidate
+        
         if (formDefinition == null) {
+        	
+        	if(getLogger().isDebugEnabled())
+        		getLogger().debug("Building Form: "+source.getURI());
+        	
             Document formDocument;
             try {
                 InputSource inputSource = new InputSource(source.getInputStream());

Modified: cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/AbstractWidgetDefinition.java
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/AbstractWidgetDefinition.java?rev=240139&r1=240138&r2=240139&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/AbstractWidgetDefinition.java (original)
+++ cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/AbstractWidgetDefinition.java Thu Aug 25 14:17:20 2005
@@ -69,7 +69,6 @@
      * initialize this definition with the other, sort of like a copy constructor
      */
     public void initializeFrom(WidgetDefinition definition) throws Exception {
-    	System.out.println("Init from def: "+definition);
     	if(definition instanceof AbstractWidgetDefinition) {
     		AbstractWidgetDefinition other = (AbstractWidgetDefinition)definition;
     		

Modified: cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/library/Library.java
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/library/Library.java?rev=240139&r1=240138&r2=240139&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/library/Library.java (original)
+++ cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/library/Library.java Thu Aug 25 14:17:20 2005
@@ -198,10 +198,10 @@
 					Library lib = manager.getLibrary(sourceURI);
 					
 					if(this.shared == lib.shared)
-						return false;
+						return true;
 				}
 				
-				return true;
+				return false;
 			} catch(Exception forward) {
 				throw new LibraryException("Exception occured while checking dependency validity!",forward);
 			}

Modified: cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/library/LibraryManagerImpl.java
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/library/LibraryManagerImpl.java?rev=240139&r1=240138&r2=240139&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/library/LibraryManagerImpl.java (original)
+++ cocoon/gsoc/mpfingsthorn/forms/java/org/apache/cocoon/forms/formmodel/library/LibraryManagerImpl.java Thu Aug 25 14:17:20 2005
@@ -167,6 +167,9 @@
 		Library lib = new Library(this);
         lib.setWidgetDefinitionBuilderSelector(this.widgetDefinitionBuilderSelector);
         
+        if(getLogger().isDebugEnabled())
+        	getLogger().debug("Created new library! "+lib);
+        
         return lib;
 	}
 

Modified: cocoon/gsoc/mpfingsthorn/forms/samples/library/forms/form1_model.xml
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/samples/library/forms/form1_model.xml?rev=240139&r1=240138&r2=240139&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/samples/library/forms/form1_model.xml (original)
+++ cocoon/gsoc/mpfingsthorn/forms/samples/library/forms/form1_model.xml Thu Aug 25 14:17:20 2005
@@ -19,7 +19,7 @@
   xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
   
   <fd:widgets>
-    <fd:import prefix="lib" uri="cocoon:/library/library_form1.xml"/>
+    <fd:import prefix="lib" uri="libraries/library_form1.xml"/>
     
     <fd:new id="lib:class1"/>
     <fd:expand id="lib:field2"/>

Modified: cocoon/gsoc/mpfingsthorn/forms/samples/library/sitemap.xmap
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/samples/library/sitemap.xmap?rev=240139&r1=240138&r2=240139&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/samples/library/sitemap.xmap (original)
+++ cocoon/gsoc/mpfingsthorn/forms/samples/library/sitemap.xmap Thu Aug 25 14:17:20 2005
@@ -77,6 +77,13 @@
   
   <map:pipelines>
     
+    <map:pipeline type="caching">
+      
+      <map:match pattern="library/**">
+        <map:read src="libraries/{1}"/>
+      </map:match>
+      
+    </map:pipeline>
     <map:pipeline type="noncaching">
       
       <map:match pattern="">
@@ -84,6 +91,8 @@
         <map:serialize/>
       </map:match>
       
+      
+      
       <map:match pattern="*.continue">
         <map:call continuation="{1}"/>
       </map:match>
@@ -119,9 +128,7 @@
         <map:read src="resource://org/apache/cocoon/forms/{0}"/>
       </map:match>
       
-      <map:match pattern="library/**">
-        <map:read src="libraries/{1}"/>
-      </map:match>
+      
       
       <!--
          | Sample building a forms-form-gui editor in forms