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