You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2008/01/07 19:50:21 UTC

svn commit: r609736 - in /tapestry/tapestry5/trunk: ./ tapestry-core/src/main/java/org/apache/tapestry/internal/services/ tapestry-core/src/main/java/org/apache/tapestry/services/ tapestry-core/src/test/java/org/apache/tapestry/internal/services/ tapes...

Author: hlship
Date: Mon Jan  7 10:50:13 2008
New Revision: 609736

URL: http://svn.apache.org/viewvc?rev=609736&view=rev
Log:
TAPESTRY-1823: It is not possible to create a reasonable implementation of RequestExceptionHandler without importing internal interfaces and services

Added:
    tapestry/tapestry5/trunk/intellij-settings.jar   (with props)
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/MasterObjectProvider.java
      - copied, changed from r594319, tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/services/MasterObjectProvider.java
Removed:
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/services/MasterObjectProvider.java
Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/DefaultInjectionProvider.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/InjectPageWorker.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRenderer.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRendererImpl.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Alias.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ApplicationStatePersistenceStrategy.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ApplicationStatePersistenceStrategySource.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/AssetFactory.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/AssetSource.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BeanBlockSource.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BeanModelSource.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BindingFactory.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BindingSource.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ClassTransformation.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ClasspathProvider.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentActionRequestFilter.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentEventResultProcessor.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentLayer.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ContextProvider.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Core.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/DataTypeAnalyzer.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Dispatcher.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Environment.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/FieldValidatorDefaultSource.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/FormSupport.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Heartbeat.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/LibraryMapping.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MarkupRendererFilter.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MarkupWriterFactory.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MetaDataLocator.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PartialMarkupRendererFilter.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PersistentFieldManager.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PersistentFieldStrategy.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyConduitSource.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyEditContext.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyOutputContext.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/RequestFilter.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/RequestGlobals.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ServletApplicationInitializerFilter.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/DefaultInjectionProviderTest.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ResponseRendererImplTest.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/resources/log4j.properties
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/ObjectLocator.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/RegistryImpl.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/MasterObjectProviderImpl.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/test/IOCTestCase.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/services/MasterObjectProviderImplTest.java

Added: tapestry/tapestry5/trunk/intellij-settings.jar
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/intellij-settings.jar?rev=609736&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry5/trunk/intellij-settings.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/DefaultInjectionProvider.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/DefaultInjectionProvider.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/DefaultInjectionProvider.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/DefaultInjectionProvider.java Mon Jan  7 10:50:13 2008
@@ -16,20 +16,20 @@
 
 import org.apache.tapestry.ioc.AnnotationProvider;
 import org.apache.tapestry.ioc.ObjectLocator;
+import org.apache.tapestry.ioc.services.MasterObjectProvider;
 import org.apache.tapestry.model.MutableComponentModel;
 import org.apache.tapestry.services.ClassTransformation;
 import org.apache.tapestry.services.InjectionProvider;
-import org.apache.tapestry.services.MasterObjectProvider;
 
 import java.lang.annotation.Annotation;
 
 /**
  * Worker for the {@link org.apache.tapestry.ioc.annotations.Inject} annotation that delegates out to
- * the master {@link MasterObjectProvider} to access the value. This worker must be scheduled after
+ * the master {@link org.apache.tapestry.ioc.services.MasterObjectProvider} to access the value. This worker must be scheduled after
  * certain other workers, such as {@link BlockInjectionProvider} (which is keyed off a combination of
  * type and the Inject annotation).
  *
- * @see org.apache.tapestry.services.MasterObjectProvider
+ * @see org.apache.tapestry.ioc.services.MasterObjectProvider
  */
 public class DefaultInjectionProvider implements InjectionProvider
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/InjectPageWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/InjectPageWorker.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/InjectPageWorker.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/InjectPageWorker.java Mon Jan  7 10:50:13 2008
@@ -50,18 +50,15 @@
 
         if (names.isEmpty()) return;
 
-        String cacheFieldName = transformation.addInjectedField(
-                RequestPageCache.class,
-                "_requestPageCache",
-                _requestPageCache);
+        String cacheFieldName = transformation.addInjectedField(RequestPageCache.class, "_requestPageCache",
+                                                                _requestPageCache);
 
         for (String name : names)
             addInjectedPage(transformation, name, cacheFieldName);
 
     }
 
-    private void addInjectedPage(ClassTransformation transformation, String fieldName,
-                                 String cacheFieldName)
+    private void addInjectedPage(ClassTransformation transformation, String fieldName, String cacheFieldName)
     {
         InjectPage annotation = transformation.getFieldAnnotation(fieldName, InjectPage.class);
 
@@ -79,11 +76,7 @@
         BodyBuilder builder = new BodyBuilder();
         builder.begin();
 
-        builder.add(
-                "%s page = %s.get(\"%s\");",
-                Page.class.getName(),
-                cacheFieldName,
-                injectedPageName);
+        builder.addln("%s page = %s.get(\"%s\");", Page.class.getName(), cacheFieldName, injectedPageName);
 
         builder.addln("return (%s) page.getRootElement().getComponent();", fieldType);
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRenderer.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRenderer.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRenderer.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRenderer.java Mon Jan  7 10:50:13 2008
@@ -16,11 +16,21 @@
 
 import org.apache.tapestry.ContentType;
 
+import java.io.IOException;
+
 /**
  * Public facade around internal services related to rendering a markup response.
  */
 public interface ResponseRenderer
 {
+    /**
+     * Renders a markup response by rendering the named page.
+     *
+     * @param pageName logical name of page to provide the markup
+     */
+    void renderPageMarkupResponse(String pageName) throws IOException;
+
+
     /**
      * Finds the content type for the page containing the indicated component.
      *

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRendererImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRendererImpl.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRendererImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRendererImpl.java Mon Jan  7 10:50:13 2008
@@ -18,6 +18,9 @@
 import org.apache.tapestry.internal.structure.Page;
 import org.apache.tapestry.ioc.internal.util.Defense;
 import org.apache.tapestry.runtime.Component;
+import org.apache.tapestry.services.Response;
+
+import java.io.IOException;
 
 public class ResponseRendererImpl implements ResponseRenderer
 {
@@ -25,10 +28,17 @@
 
     private final PageContentTypeAnalyzer _pageContentAnalyzer;
 
-    public ResponseRendererImpl(RequestPageCache pageCache, PageContentTypeAnalyzer pageContentAnalyzer)
+    private final PageResponseRenderer _renderer;
+
+    private final Response _response;
+
+    public ResponseRendererImpl(RequestPageCache pageCache, PageContentTypeAnalyzer pageContentAnalyzer,
+                                PageResponseRenderer renderer, Response response)
     {
         _pageCache = pageCache;
         _pageContentAnalyzer = pageContentAnalyzer;
+        _renderer = renderer;
+        _response = response;
     }
 
     public ContentType findContentType(Object component)
@@ -40,5 +50,12 @@
         Page page = _pageCache.get(pageName);
 
         return _pageContentAnalyzer.findContentType(page);
+    }
+
+    public void renderPageMarkupResponse(String pageName) throws IOException
+    {
+        Page page = _pageCache.get(pageName);
+
+        _renderer.renderPageResponse(page, _response);
     }
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Alias.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Alias.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Alias.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Alias.java Mon Jan  7 10:50:13 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -17,16 +17,21 @@
 import org.apache.tapestry.ioc.ObjectProvider;
 
 /**
- * Primarily, the Alias service is an ObjectProvider that fits into the command chain and
- * disambiguates injections on type. Contributions to the Alias service identify the normal service
+ * The Alias service provides an ObjectProvider that fits into the MasterObjectProvider command chain and
+ * disambiguates injections based on type. {@linkplain org.apache.tapestry.services.AliasContribution Contibutions}
+ * to the Alias service identify the desired service
  * to inject for a particular service interface; this is only necessary when there is more than one
  * service implementing the same interface.
+ * <p/>
+ * The {@linkplain AliasManager AliasOverrides}
+ * service also takes an unordered configuration of {@link org.apache.tapestry.services.AliasContribution}; such
+ * contributions override the "factory" contributions to the Alias service itself.  This is often used
+ * to replace built-in service implementations with ones that are specific to a particular application.
  */
 public interface Alias
 {
     /**
-     * Returns an object that can provide objects based on contributions into the Alias (and
-     * AliasOverrides) service.
+     * Returns an object provideer that checks the desired type against the service's contributions.
      */
     ObjectProvider getObjectProvider();
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ApplicationStatePersistenceStrategy.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ApplicationStatePersistenceStrategy.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ApplicationStatePersistenceStrategy.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ApplicationStatePersistenceStrategy.java Mon Jan  7 10:50:13 2008
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2008 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -17,6 +17,8 @@
 /**
  * Used by {@link ApplicationStateManager} to manage a specific kind of ASO persistence. The stategy
  * is responsible for managing ASO instances within its domain.
+ *
+ * @see org.apache.tapestry.services.ApplicationStatePersistenceStrategySource
  */
 public interface ApplicationStatePersistenceStrategy
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ApplicationStatePersistenceStrategySource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ApplicationStatePersistenceStrategySource.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ApplicationStatePersistenceStrategySource.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ApplicationStatePersistenceStrategySource.java Mon Jan  7 10:50:13 2008
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2008 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -16,10 +16,8 @@
 
 /**
  * Used to provide access to stategies via a logical name for the stategy, such as "session".
- * <p/>
- * Note: Ideally, this would just be internal to {@link ApplicationStateManager}, but Tapestry
- * IOC's one-configuration-per-service makes that awkward, so this part of that functionality
- * becomes its own service.
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributeApplicationStatePersistenceStrategySource(org.apache.tapestry.ioc.MappedConfiguration, Request)
  */
 public interface ApplicationStatePersistenceStrategySource
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/AssetFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/AssetFactory.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/AssetFactory.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/AssetFactory.java Mon Jan  7 10:50:13 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -19,6 +19,8 @@
 
 /**
  * Used by {@link AssetSource} to create new {@link Asset}s as needed.
+ *
+ * @see org.apache.tapestry.services.AssetSource
  */
 public interface AssetFactory
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/AssetSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/AssetSource.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/AssetSource.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/AssetSource.java Mon Jan  7 10:50:13 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -22,6 +22,11 @@
 
 /**
  * Used to find or create an {@link Asset} with a given path.
+ * <p/>
+ * Assets are defined with a domain, and the domain is indicated by a prefix.  The two builtin domains are "context:" (for files inside
+ * the web application context) and "classpath:" for files stored on the classpath (typically, inside a JAR, such as a component library).
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributeAssetSource(org.apache.tapestry.ioc.MappedConfiguration, AssetFactory, AssetFactory)
  */
 public interface AssetSource
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BeanBlockSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BeanBlockSource.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BeanBlockSource.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BeanBlockSource.java Mon Jan  7 10:50:13 2008
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2008 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -22,8 +22,13 @@
  * A source of {@link Block}s used to display the properties of a bean (used by the {@link Grid}
  * component), or to edit the properties of a bean (used by the {@link BeanEditForm} component).
  * Contributions to this service define what properties may be editted.
+ * <p/>
+ * <p/>
+ * Blocks are accessed in terms of a <strong>data type</strong> a string that identifies the type
+ * of data to be editted, such as "string", "date", "boolean", etc.
  *
  * @see DataTypeAnalyzer
+ * @see org.apache.tapestry.services.TapestryModule#contributeBeanBlockSource(org.apache.tapestry.ioc.Configuration)
  */
 public interface BeanBlockSource
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BeanModelSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BeanModelSource.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BeanModelSource.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BeanModelSource.java Mon Jan  7 10:50:13 2008
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2008 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -21,6 +21,10 @@
 /**
  * Used by a component to create a default {@link BeanModel} for a particular bean class. Also
  * provides support to the model by generating validation information for individual fields.
+ * <p/>
+ * <p/>
+ * BeanModels are the basis for the {@link org.apache.tapestry.corelib.components.BeanEditor} and
+ * {@link org.apache.tapestry.corelib.components.Grid} comopnents.
  */
 public interface BeanModelSource
 {
@@ -42,6 +46,5 @@
      *                                 labels)
      * @return a model
      */
-    BeanModel create(Class beanClass, boolean filterReadOnlyProperties,
-                     ComponentResources resources);
+    BeanModel create(Class beanClass, boolean filterReadOnlyProperties, ComponentResources resources);
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BindingFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BindingFactory.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BindingFactory.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BindingFactory.java Mon Jan  7 10:50:13 2008
@@ -19,7 +19,7 @@
 import org.apache.tapestry.ioc.Location;
 
 /**
- * Creates a binding of a particular type.
+ * Creates a binding of a particular type.  This is usually invoked from the {@link org.apache.tapestry.services.BindingSource} service.
  */
 public interface BindingFactory
 {
@@ -40,6 +40,6 @@
      * @param location    from which the binding was generate, or null if not known
      * @return the new binding instance
      */
-    Binding newBinding(String description, ComponentResources container,
-                       ComponentResources component, String expression, Location location);
+    Binding newBinding(String description, ComponentResources container, ComponentResources component,
+                       String expression, Location location);
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BindingSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BindingSource.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BindingSource.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/BindingSource.java Mon Jan  7 10:50:13 2008
@@ -19,7 +19,10 @@
 import org.apache.tapestry.ioc.Location;
 
 /**
- * Used to acquire bindings for component parameters.
+ * Used to acquire bindings for component parameters. The BindingSource service strips off the binding prefix
+ * to locate a {@link org.apache.tapestry.services.BindingFactory}.
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributeBindingSource(org.apache.tapestry.ioc.MappedConfiguration, AssetSource, BindingFactory, FieldValidatorSource, TranslatorSource)
  */
 public interface BindingSource
 {
@@ -42,8 +45,8 @@
      * @param location      location assigned to the binding (or null if not known)
      * @return a binding
      */
-    Binding newBinding(String description, ComponentResources container,
-                       ComponentResources component, String defaultPrefix, String expression, Location location);
+    Binding newBinding(String description, ComponentResources container, ComponentResources component,
+                       String defaultPrefix, String expression, Location location);
 
     /**
      * A simpler version of
@@ -59,6 +62,5 @@
      * @param expression    the binding
      * @return a binding
      */
-    Binding newBinding(String description, ComponentResources container, String defaultPrefix,
-                       String expression);
+    Binding newBinding(String description, ComponentResources container, String defaultPrefix, String expression);
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ClassTransformation.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ClassTransformation.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ClassTransformation.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ClassTransformation.java Mon Jan  7 10:50:13 2008
@@ -22,7 +22,12 @@
 import java.util.List;
 
 /**
- * Contains class-specific information used when transforming an raw class into an executable class.
+ * Contains class-specific information used when transforming a raw component class into an executable component class.
+ * An executable class is one that has been transformed to work within Tapestry.  This includes
+ * adding interfaces ({@link org.apache.tapestry.runtime.Component}) but also transforming access to fields, based
+ * on annotations and naming conventions.  Most of the changes are provided by different implementations of
+ * {@link ComponentClassTransformWorker}.
+ * <p/>
  * Much of this information is somewhat like ordinary reflection, but applies to a class that has
  * not yet been loaded.
  * <p/>
@@ -39,6 +44,8 @@
  * <p/>
  * The majority of methods concern the <em>declared</em> members (field and methods) of a specific
  * class, rather than any fields or methods inherited from a base class.
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributeComponentClassTransformWorker(org.apache.tapestry.ioc.OrderedConfiguration, org.apache.tapestry.ioc.ObjectLocator, InjectionProvider, Environment, ComponentClassResolver, org.apache.tapestry.internal.services.RequestPageCache, BindingSource, ApplicationStateManager)
  */
 public interface ClassTransformation extends AnnotationProvider
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ClasspathProvider.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ClasspathProvider.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ClasspathProvider.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ClasspathProvider.java Mon Jan  7 10:50:13 2008
@@ -23,7 +23,7 @@
 
 
 /**
- * Used to select the correct {@link AssetFactory} for injection. The marked interface will service
+ * A marker annotation used to select the correct {@link AssetFactory} for injection. The marked interface will provide
  * assets located on the classpath.
  */
 @Target(

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentActionRequestFilter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentActionRequestFilter.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentActionRequestFilter.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentActionRequestFilter.java Mon Jan  7 10:50:13 2008
@@ -18,6 +18,8 @@
 
 /**
  * Filter interface for {@link ComponentActionRequestHandler}.
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributeComponentActionRequestHandler(org.apache.tapestry.ioc.OrderedConfiguration, org.apache.tapestry.internal.services.RequestEncodingInitializer, ComponentActionRequestHandler)
  */
 public interface ComponentActionRequestFilter
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java Mon Jan  7 10:50:13 2008
@@ -27,7 +27,7 @@
  * package is expected to have sub-packages: "pages", "components", "mixins" and "base" ("base" is
  * for base classes).
  * <p/>
- * The resolver performs a search of the classpath (via {@link ClassNameLocator}, to build up a set
+ * The resolver performs a search of the classpath (via {@link ClassNameLocator}), to build up a set
  * of case-insensitive maps from logical page name, component type, or mixin type to fully qualified
  * class name.
  * <p/>

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentEventResultProcessor.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentEventResultProcessor.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentEventResultProcessor.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentEventResultProcessor.java Mon Jan  7 10:50:13 2008
@@ -19,7 +19,7 @@
 import java.io.IOException;
 
 /**
- * Responsible for handling the return value provided by a component event handler.
+ * Responsible for handling the return value provided by a component event handler method.
  *
  * @param <T>
  */
@@ -31,8 +31,7 @@
      * @param value            the value returned from a method
      * @param component        the component on which a method was invoked
      * @param methodDescripion a description of method which provided the value
-     * @return an object that can send the request to the client
-     * @throws RuntimeException if the value can not be converted into a response
+     * @throws RuntimeException if the value can not handled
      */
     void processComponentEvent(T value, Component component, String methodDescripion) throws IOException;
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentLayer.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentLayer.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentLayer.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentLayer.java Mon Jan  7 10:50:13 2008
@@ -14,8 +14,6 @@
 
 package org.apache.tapestry.services;
 
-import org.apache.tapestry.ioc.services.Builtin;
-
 import java.lang.annotation.Documented;
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.PARAMETER;
@@ -24,9 +22,9 @@
 import java.lang.annotation.Target;
 
 /**
- * Used to identify a service from the component layer that conflicts, in terms of service
+ * Marker annotation used to identify a service from the component layer that conflicts, in terms of service
  * interface, with a service from elsewhere. In particular, this is used to disambiguate
- * {@link org.apache.tapestry.ioc.services.ClassFactory} which has one implementation (marked with {@link Builtin} and
+ * {@link org.apache.tapestry.ioc.services.ClassFactory} which has one implementation (marked with {@link org.apache.tapestry.ioc.services.Builtin} and
  * another with this annotation.
  */
 @Target(

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ContextProvider.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ContextProvider.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ContextProvider.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ContextProvider.java Mon Jan  7 10:50:13 2008
@@ -22,7 +22,7 @@
 import java.lang.annotation.Target;
 
 /**
- * Used to select the correct {@link AssetFactory} for injection. The marked interface will service
+ * Marker annotation to select the correct {@link AssetFactory} for injection. The marked interface will provide
  * assets located in the web application context.
  */
 @Target(

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Core.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Core.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Core.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Core.java Mon Jan  7 10:50:13 2008
@@ -22,7 +22,7 @@
 import java.lang.annotation.Target;
 
 /**
- * Marker for services that are provided by the Tapestry core module.
+ * Marker annotation for services that are provided by the Tapestry core module.
  */
 @Target(
         {PARAMETER, FIELD})

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/DataTypeAnalyzer.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/DataTypeAnalyzer.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/DataTypeAnalyzer.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/DataTypeAnalyzer.java Mon Jan  7 10:50:13 2008
@@ -24,10 +24,14 @@
  * what kind of interface to use for displaying the value of the property, or what kind of interface
  * to use for editing the value of the property. Common property types are "text", "enum",
  * "checkbox", but the list is extensible.
+ * <p/>
+ * <p>Different strategies for identifying the data type are encapsulated in the DataTypeAnalyzer service, forming
+ * a chain of command.
  *
  * @see Grid
  * @see BeanEditForm
  * @see BeanBlockSource
+ * @see org.apache.tapestry.services.TapestryModule#contributeDataTypeAnalyzer(org.apache.tapestry.ioc.OrderedConfiguration, DataTypeAnalyzer)
  */
 public interface DataTypeAnalyzer
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Dispatcher.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Dispatcher.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Dispatcher.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Dispatcher.java Mon Jan  7 10:50:13 2008
@@ -19,6 +19,8 @@
 /**
  * A dispatcher is responsible for recognizing an incoming request. Dispatchers form an ordered
  * chain of command, with each dispatcher responsible for recognizing requests that it can process.
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributeMasterDispatcher(org.apache.tapestry.ioc.OrderedConfiguration, ClasspathAssetAliasManager, org.apache.tapestry.internal.services.ResourceCache, org.apache.tapestry.internal.services.ResourceStreamer, PageRenderRequestHandler, ComponentActionRequestHandler, ComponentClassResolver, String)
  */
 public interface Dispatcher
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Environment.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Environment.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Environment.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Environment.java Mon Jan  7 10:50:13 2008
@@ -22,10 +22,15 @@
  * <p/>
  * The Environment acts like a collection of stacks. Each stack contains environmental service
  * providers of a given type.
+ *
+ * @see org.apache.tapestry.annotations.Environmental
+ * @see org.apache.tapestry.services.EnvironmentalShadowBuilder
  */
 public interface Environment
 {
     /**
+     * Peeks at the current top of the indicated stack.
+     *
      * @param <T>  the type of environmental service
      * @param type class used to select a service
      * @return the current service of that type, or null if no service of that type has been added
@@ -33,6 +38,8 @@
     <T> T peek(Class<T> type);
 
     /**
+     * Peeks at the current top of the indicated stack (which must have a non-null value).
+     *
      * @param <T>  the type of environmental service
      * @param type class used to select a service
      * @return the current service

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/FieldValidatorDefaultSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/FieldValidatorDefaultSource.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/FieldValidatorDefaultSource.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/FieldValidatorDefaultSource.java Mon Jan  7 10:50:13 2008
@@ -22,7 +22,7 @@
 import java.util.Locale;
 
 /**
- * For a particular field, geenerates the default validation for the field, in accordance with a
+ * For a particular field, generates the default validation for the field, in accordance with a
  * number of factors and contributions.
  */
 public interface FieldValidatorDefaultSource
@@ -39,7 +39,6 @@
      * @param propertyAnnotations
      * @return
      */
-    FieldValidator createDefaultValidator(Field field, String overrideId,
-                                          Messages overrideMessages, Locale locale, Class propertyType,
-                                          AnnotationProvider propertyAnnotations);
+    FieldValidator createDefaultValidator(Field field, String overrideId, Messages overrideMessages, Locale locale,
+                                          Class propertyType, AnnotationProvider propertyAnnotations);
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/FormSupport.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/FormSupport.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/FormSupport.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/FormSupport.java Mon Jan  7 10:50:13 2008
@@ -20,7 +20,7 @@
 
 /**
  * Services provided by an enclosing Form control component to the various form element components
- * it encloses. Implement {@link ClientElement}, to share the id of the enclosing form.
+ * it encloses. Implements {@link ClientElement}, to share the id of the enclosing form.
  */
 public interface FormSupport extends ClientElement
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Heartbeat.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Heartbeat.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Heartbeat.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/Heartbeat.java Mon Jan  7 10:50:13 2008
@@ -15,10 +15,12 @@
 package org.apache.tapestry.services;
 
 /**
- * Allow for deferred execution of logic, useful when trying to get multiple components to
+ * Allows for deferred execution of logic, useful when trying to get multiple components to
  * coordinate behavior. A component may add a command to be executed "{@link #end() at the end of the heartbeat}".
  * The classic example of this is a Label and the field it labels; since we don't know which order
  * the two will render, we can't tell if the field's id is correct until after both have rendered.
+ * <p/>
+ * The Heartbeat is injected into components via the {@link org.apache.tapestry.annotations.Environmental} annotation.
  */
 public interface Heartbeat
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/LibraryMapping.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/LibraryMapping.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/LibraryMapping.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/LibraryMapping.java Mon Jan  7 10:50:13 2008
@@ -1,25 +1,34 @@
-// Copyright 2006 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
+// Copyright 2006 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package org.apache.tapestry.services;
 
 /**
  * Used to configure the {@link ComponentClassResolver}, to allow it to map prefixes to library
  * root packages (the application namespace is a special case of this). In each case, a prefix on
- * the path is mapped to a package. Prefixes should start with a character and end with a slash, as
- * in "core". The root package name should have two sub-packages: "pages" to contain named pages,
- * and "components" to contain named components.
+ * the path is mapped to a package. Prefixes should start and end with characters, such as "core".
+ * It is allowed for a prefix to contain a slash, though it is not recommended.
+ * <p/>
+ * The root package name should have a number of sub-packages:
+ * <dl>
+ * <dt>pages</dt> <dd>contains named pages</dd>
+ * <dt>components</dt> <dd>contains components</dd>
+ * <dt>mixins</dt> <dd>contains component mixins</dd>
+ * <dt>base</dt> <dd>contains base classes</dd>
+ * </dl>
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributeComponentClassResolver(org.apache.tapestry.ioc.Configuration)
  */
 public final class LibraryMapping
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MarkupRendererFilter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MarkupRendererFilter.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MarkupRendererFilter.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MarkupRendererFilter.java Mon Jan  7 10:50:13 2008
@@ -20,6 +20,8 @@
  * Filter interface for {@link org.apache.tapestry.services.MarkupRenderer}, which allows
  * for code to execute before and/or after the main rendering process.  Typically, this is to
  * allow for the placement of {@linkplain org.apache.tapestry.services.Environment environmental services}.
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributeMarkupRenderer(org.apache.tapestry.ioc.OrderedConfiguration, org.apache.tapestry.Asset, org.apache.tapestry.Asset, ValidationMessagesSource, org.apache.tapestry.ioc.services.SymbolSource, AssetSource)
  */
 public interface MarkupRendererFilter
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MarkupWriterFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MarkupWriterFactory.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MarkupWriterFactory.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MarkupWriterFactory.java Mon Jan  7 10:50:13 2008
@@ -1,17 +1,17 @@
-// Copyright 2006, 2007 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
+// Copyright 2006, 2007 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package org.apache.tapestry.services;
 
 import org.apache.tapestry.ContentType;
@@ -23,9 +23,11 @@
 public interface MarkupWriterFactory
 {
     /**
-     * This will likely expand in the future to control things like output format and encoding, etc.
+     * Creates a markup writer for a particular content type.
      *
-     * @param contentType
+     * @param contentType type of content generated by the markup write; used to control the type of
+     *                    {@link org.apache.tapestry.dom.MarkupModel} used with the {@link org.apache.tapestry.dom.Document}
+     *                    the backs the markup writer.
      */
     MarkupWriter newMarkupWriter(ContentType contentType);
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MetaDataLocator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MetaDataLocator.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MetaDataLocator.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/MetaDataLocator.java Mon Jan  7 10:50:13 2008
@@ -22,8 +22,10 @@
  * the meta data defined for the component, accessed via {@link ComponentModel#getMeta(String)}.
  * This includes meta data defined by base classes. When meta-data for a particular component can
  * not be found, a search works up the containment hierarchy (to the component's container, and the
- * container's containter, and so on). If <em>that</em> proves unfruitful, a system of defaults is
+ * container's container, and so on). If <em>that</em> proves unfruitful, a system of defaults is
  * provided by configuration and matched against the containing page's logical name.
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributeMetaDataLocator(org.apache.tapestry.ioc.MappedConfiguration)
  */
 public interface MetaDataLocator
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PartialMarkupRendererFilter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PartialMarkupRendererFilter.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PartialMarkupRendererFilter.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PartialMarkupRendererFilter.java Mon Jan  7 10:50:13 2008
@@ -21,6 +21,8 @@
  * A filter (the main interface being {@link PartialMarkupRenderer}) applied when performing a partial page render as part of an Ajax-oriented request.  This is similar
  * to {@link org.apache.tapestry.services.MarkupRendererFilter} and filters are often in place so as
  * to contribute {@link org.apache.tapestry.annotations.Environmental} services to the pages and components that render.
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributePartialMarkupRenderer(org.apache.tapestry.ioc.OrderedConfiguration, org.apache.tapestry.Asset, ValidationMessagesSource, org.apache.tapestry.ioc.services.SymbolSource, AssetSource)
  */
 public interface PartialMarkupRendererFilter
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PersistentFieldManager.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PersistentFieldManager.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PersistentFieldManager.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PersistentFieldManager.java Mon Jan  7 10:50:13 2008
@@ -19,6 +19,8 @@
 /**
  * Handle persistent property changes. Primarily, delegates to a number of
  * {@link PersistentFieldStrategy} instances.
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributePersistentFieldManager(org.apache.tapestry.ioc.MappedConfiguration, Request, PersistentFieldStrategy)
  */
 public interface PersistentFieldManager
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PersistentFieldStrategy.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PersistentFieldStrategy.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PersistentFieldStrategy.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PersistentFieldStrategy.java Mon Jan  7 10:50:13 2008
@@ -1,21 +1,28 @@
-// Copyright 2006 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
+// Copyright 2006 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package org.apache.tapestry.services;
 
 import java.util.Collection;
 
+/**
+ * Defines how changes to fields (within components, within pages) may have their values persisted between requests.
+ * Different implementations store the field values
+ * {@linkplain org.apache.tapestry.internal.services.SessionPersistentFieldStrategy in the session},
+ * {@linkplain org.apache.tapestry.internal.services.ClientPersistentFieldStrategy on the client}, or
+ * elsewhere.
+ */
 public interface PersistentFieldStrategy
 {
     /**

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyConduitSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyConduitSource.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyConduitSource.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyConduitSource.java Mon Jan  7 10:50:13 2008
@@ -26,6 +26,10 @@
  * name of a JavaBean property, or the name of a method (a method that takes no parameters). Method
  * names are distinguished from property names by appending empty parens. Using a method term as the
  * final term will make the expression read-only.
+ * <p/>
+ * Alternately, the seperator between property names may be "?." (i.e., "user?.name").  This allows
+ * an "if not null" connection: if the term is null, then the expression evaluates to null, otherwise,
+ * the expression continues to the next property.  The helps avoid NullPointerExpressions.
  */
 public interface PropertyConduitSource
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyEditContext.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyEditContext.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyEditContext.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyEditContext.java Mon Jan  7 10:50:13 2008
@@ -24,7 +24,7 @@
 import org.apache.tapestry.ioc.Messages;
 
 /**
- * Defines a context for editing a property of a bean via {@link BeanEditForm}. This value is made
+ * Defines a context for editing a property of a bean via {@link org.apache.tapestry.corelib.components.BeanEditor}. This value is made
  * available to blocks via the {@link Environmental} annotation.
  *
  * @see BeanBlockSource

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyOutputContext.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyOutputContext.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyOutputContext.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/PropertyOutputContext.java Mon Jan  7 10:50:13 2008
@@ -19,7 +19,8 @@
 
 /**
  * Provides context information needed when displaying a value. This interface is an integral part
- * of the {@link Grid} and similar output components.
+ * of the {@link Grid} and similar output components.    It is made available to
+ * components via an {@link org.apache.tapestry.annotations.Environmental} annotation.
  */
 public interface PropertyOutputContext
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/RequestFilter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/RequestFilter.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/RequestFilter.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/RequestFilter.java Mon Jan  7 10:50:13 2008
@@ -19,6 +19,8 @@
 /**
  * Filter interface for {@link org.apache.tapestry.services.RequestHandler}. Implementations of
  * this interface may be contributed into the RequestHandler service configuration.
+ *
+ * @see org.apache.tapestry.services.TapestryModule#contributeRequestHandler(org.apache.tapestry.ioc.OrderedConfiguration, Context, RequestExceptionHandler, long, long, org.apache.tapestry.internal.services.LocalizationSetter)
  */
 public interface RequestFilter
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/RequestGlobals.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/RequestGlobals.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/RequestGlobals.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/RequestGlobals.java Mon Jan  7 10:50:13 2008
@@ -1,17 +1,17 @@
-// Copyright 2006, 2007 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
+// Copyright 2006, 2007 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package org.apache.tapestry.services;
 
 import javax.servlet.http.HttpServletRequest;
@@ -19,7 +19,7 @@
 
 /**
  * Service used to store the current request objects, both the Servlet API versions, and the
- * Tapestry generic versions.
+ * Tapestry generic versions. The service has a per-thread scope.
  */
 public interface RequestGlobals
 {
@@ -35,12 +35,12 @@
     void store(Request request, Response response);
 
     /**
-     * Accessible as injected object "alias:Request".
+     * The current request. This is exposed as service Request.
      */
     Request getRequest();
 
     /**
-     * Accessible as injected object "alias:Response".
+     * The current response. This is exposed as service Response.
      */
     Response getResponse();
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ServletApplicationInitializerFilter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ServletApplicationInitializerFilter.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ServletApplicationInitializerFilter.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ServletApplicationInitializerFilter.java Mon Jan  7 10:50:13 2008
@@ -1,17 +1,17 @@
-// Copyright 2006 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
+// Copyright 2006 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package org.apache.tapestry.services;
 
 import javax.servlet.ServletContext;

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java Mon Jan  7 10:50:13 2008
@@ -462,9 +462,15 @@
     }
 
     /**
-     * Contributes filter "StaticFilesFilter" that identifies requests for static resources and
-     * terminates the pipeline by returning false. Generally, most filters should be ordered after
-     * this filter.
+     * Continues a number of filters into the RequestHandler service:
+     * <dl>
+     * <dt>StaticFiles</dt> <dd>Checks to see if the request is for an actual file, if so, returns true to let
+     * the servlet container process the request</dd>
+     * <dt>CheckForUpdates</dt> <dd>Periodically fires events that checks to see if the file system sources
+     * for any cached data has changed (see {@link org.apache.tapestry.internal.services.CheckForUpdatesFilter}).
+     * <dt>ErrorFilter</dt> <dd>Catches request errors and lets the {@link org.apache.tapestry.services.RequestExceptionHandler} handle them</dd>
+     * <dt>Localization</dt> <dd>Determines the locale for the current request from header data or cookies in the request</dd>
+     * </dl>
      */
     public void contributeRequestHandler(OrderedConfiguration<RequestFilter> configuration, Context context,
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/DefaultInjectionProviderTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/DefaultInjectionProviderTest.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/DefaultInjectionProviderTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/DefaultInjectionProviderTest.java Mon Jan  7 10:50:13 2008
@@ -17,9 +17,9 @@
 import org.apache.tapestry.internal.test.InternalBaseTestCase;
 import org.apache.tapestry.ioc.AnnotationProvider;
 import org.apache.tapestry.ioc.ObjectLocator;
+import org.apache.tapestry.ioc.services.MasterObjectProvider;
 import org.apache.tapestry.model.MutableComponentModel;
 import org.apache.tapestry.services.ClassTransformation;
-import org.apache.tapestry.services.MasterObjectProvider;
 import org.apache.tapestry.services.Request;
 import static org.easymock.EasyMock.eq;
 import static org.easymock.EasyMock.isA;
@@ -36,12 +36,8 @@
         MutableComponentModel model = mockMutableComponentModel();
         Request injected = mockRequest();
 
-        expect(
-                master.provide(
-                        eq(Request.class),
-                        isA(AnnotationProvider.class),
-                        eq(locator),
-                        eq(false))).andReturn(injected);
+        expect(master.provide(eq(Request.class), isA(AnnotationProvider.class), eq(locator), eq(false))).andReturn(
+                injected);
 
         ct.injectField("myfield", injected);
 
@@ -62,12 +58,8 @@
         ClassTransformation ct = mockClassTransformation();
         MutableComponentModel model = mockMutableComponentModel();
 
-        expect(
-                master.provide(
-                        eq(Request.class),
-                        isA(AnnotationProvider.class),
-                        eq(locator),
-                        eq(false))).andReturn(null);
+        expect(master.provide(eq(Request.class), isA(AnnotationProvider.class), eq(locator), eq(false))).andReturn(
+                null);
 
         replay();
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ResponseRendererImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ResponseRendererImplTest.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ResponseRendererImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ResponseRendererImplTest.java Mon Jan  7 10:50:13 2008
@@ -19,6 +19,7 @@
 import org.apache.tapestry.internal.structure.Page;
 import org.apache.tapestry.internal.test.InternalBaseTestCase;
 import org.apache.tapestry.runtime.Component;
+import org.apache.tapestry.services.Response;
 import org.testng.annotations.Test;
 
 public class ResponseRendererImplTest extends InternalBaseTestCase
@@ -42,9 +43,32 @@
 
         replay();
 
-        ResponseRenderer renderer = new ResponseRendererImpl(cache, analyzer);
+        ResponseRenderer renderer = new ResponseRendererImpl(cache, analyzer, null, null);
 
         assertSame(renderer.findContentType(component), contentType);
+
+        verify();
+    }
+
+    @Test
+    public void render_page_markup() throws Exception
+    {
+        RequestPageCache cache = mockRequestPageCache();
+        PageContentTypeAnalyzer analyzer = mockPageContentTypeAnalyzer();
+        String pageName = "foo/bar";
+        Page page = mockPage();
+        PageResponseRenderer pageResponseRenderer = mockPageResponseRenderer();
+        Response response = mockResponse();
+
+        train_get(cache, pageName, page);
+
+        pageResponseRenderer.renderPageResponse(page, response);
+
+        replay();
+
+        ResponseRenderer renderer = new ResponseRendererImpl(cache, analyzer, pageResponseRenderer, response);
+
+        renderer.renderPageMarkupResponse(pageName);
 
         verify();
     }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/resources/log4j.properties?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/resources/log4j.properties (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/resources/log4j.properties Mon Jan  7 10:50:13 2008
@@ -23,4 +23,7 @@
 
 # log4j.category.org.apache.tapestry.services.TapestryModule.ComponentInstantiatorSource=debug
 
+log4j.category.org.apache.tapestry.integration.app1.pages=debug
+
+
 

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/ObjectLocator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/ObjectLocator.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/ObjectLocator.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/ObjectLocator.java Mon Jan  7 10:50:13 2008
@@ -14,7 +14,7 @@
 
 package org.apache.tapestry.ioc;
 
-import org.apache.tapestry.services.MasterObjectProvider;
+import org.apache.tapestry.ioc.services.MasterObjectProvider;
 
 /**
  * Defines an object which can provide access to services defined within a

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/RegistryImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/RegistryImpl.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/RegistryImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/RegistryImpl.java Mon Jan  7 10:50:13 2008
@@ -28,7 +28,6 @@
 import org.apache.tapestry.ioc.internal.util.OneShotLock;
 import org.apache.tapestry.ioc.internal.util.Orderer;
 import org.apache.tapestry.ioc.services.*;
-import org.apache.tapestry.services.MasterObjectProvider;
 import org.slf4j.Logger;
 
 import java.lang.reflect.Constructor;

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/MasterObjectProviderImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/MasterObjectProviderImpl.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/MasterObjectProviderImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/MasterObjectProviderImpl.java Mon Jan  7 10:50:13 2008
@@ -17,7 +17,7 @@
 import org.apache.tapestry.ioc.AnnotationProvider;
 import org.apache.tapestry.ioc.ObjectLocator;
 import org.apache.tapestry.ioc.ObjectProvider;
-import org.apache.tapestry.services.MasterObjectProvider;
+import org.apache.tapestry.ioc.services.MasterObjectProvider;
 
 import java.util.List;
 
@@ -30,8 +30,8 @@
         _configuration = configuration;
     }
 
-    public <T> T provide(Class<T> objectType, AnnotationProvider annotationProvider,
-                         ObjectLocator locator, boolean required)
+    public <T> T provide(Class<T> objectType, AnnotationProvider annotationProvider, ObjectLocator locator,
+                         boolean required)
     {
         for (ObjectProvider provider : _configuration)
         {

Copied: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/MasterObjectProvider.java (from r594319, tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/services/MasterObjectProvider.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/MasterObjectProvider.java?p2=tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/MasterObjectProvider.java&p1=tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/services/MasterObjectProvider.java&r1=594319&r2=609736&rev=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/services/MasterObjectProvider.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/MasterObjectProvider.java Mon Jan  7 10:50:13 2008
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry.services;
+package org.apache.tapestry.ioc.services;
 
 import org.apache.tapestry.ioc.AnnotationProvider;
 import org.apache.tapestry.ioc.ObjectLocator;
@@ -47,6 +47,5 @@
      * @throws RuntimeException if the expression can not be evaluated, or the type of object identified is not
      *                          assignable to the type specified by the objectType parameter
      */
-    <T> T provide(Class<T> objectType, AnnotationProvider annotationProvider,
-                  ObjectLocator locator, boolean required);
+    <T> T provide(Class<T> objectType, AnnotationProvider annotationProvider, ObjectLocator locator, boolean required);
 }

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java Mon Jan  7 10:50:13 2008
@@ -20,7 +20,6 @@
 import org.apache.tapestry.ioc.annotations.Value;
 import org.apache.tapestry.ioc.internal.services.*;
 import org.apache.tapestry.ioc.util.TimePeriod;
-import org.apache.tapestry.services.MasterObjectProvider;
 
 import java.io.File;
 import java.lang.reflect.Array;

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/test/IOCTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/test/IOCTestCase.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/test/IOCTestCase.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/test/IOCTestCase.java Mon Jan  7 10:50:13 2008
@@ -20,10 +20,10 @@
 import org.apache.tapestry.ioc.def.DecoratorDef;
 import org.apache.tapestry.ioc.def.ModuleDef;
 import org.apache.tapestry.ioc.def.ServiceDef;
+import org.apache.tapestry.ioc.services.MasterObjectProvider;
 import org.apache.tapestry.ioc.services.SymbolSource;
 import org.apache.tapestry.ioc.services.ThreadLocale;
 import org.apache.tapestry.ioc.services.TypeCoercer;
-import org.apache.tapestry.services.MasterObjectProvider;
 import static org.easymock.EasyMock.isA;
 import org.slf4j.Logger;
 

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/services/MasterObjectProviderImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/services/MasterObjectProviderImplTest.java?rev=609736&r1=609735&r2=609736&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/services/MasterObjectProviderImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/services/MasterObjectProviderImplTest.java Mon Jan  7 10:50:13 2008
@@ -17,8 +17,8 @@
 import org.apache.tapestry.ioc.AnnotationProvider;
 import org.apache.tapestry.ioc.ObjectLocator;
 import org.apache.tapestry.ioc.ObjectProvider;
+import org.apache.tapestry.ioc.services.MasterObjectProvider;
 import org.apache.tapestry.ioc.test.IOCTestCase;
-import org.apache.tapestry.services.MasterObjectProvider;
 import org.testng.annotations.Test;
 
 import java.util.Arrays;