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/05 01:29:21 UTC
svn commit: r609067 - in /tapestry/tapestry5/trunk/tapestry-core/src:
main/java/org/apache/tapestry/ main/java/org/apache/tapestry/corelib/mixins/
main/java/org/apache/tapestry/internal/
main/java/org/apache/tapestry/internal/services/ main/java/org/ap...
Author: hlship
Date: Fri Jan 4 16:29:20 2008
New Revision: 609067
URL: http://svn.apache.org/viewvc?rev=609067&view=rev
Log:
TAPESTRY-2019: Autocompleter mixin now fails with a NullPointerException
Added:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/ContentType.java
- copied, changed from r594319, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/util/ContentType.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/test/java/org/apache/tapestry/ContentTypeTest.java
- copied, changed from r594319, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/util/ContentTypeTest.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ResponseRendererImplTest.java
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/corelib/mixins/Autocomplete.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/InternalConstants.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/AjaxComponentActionRequestHandler.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/AjaxPartialResponseRendererImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MarkupWriterFactoryImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageContentTypeAnalyzer.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageContentTypeAnalyzerImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageResponseRendererImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/RequestEncodingInitializerImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/test/TestableMarkupWriterFactoryImpl.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/TapestryModule.java
Copied: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/ContentType.java (from r594319, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/util/ContentType.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/ContentType.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/ContentType.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/util/ContentType.java&r1=594319&r2=609067&rev=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/util/ContentType.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/ContentType.java Fri Jan 4 16:29:20 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.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.util;
+package org.apache.tapestry;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newCaseInsensitiveMap;
import org.apache.tapestry.ioc.internal.util.Defense;
@@ -68,8 +68,7 @@
ContentType ct = (ContentType) o;
- return _baseType.equals(ct._baseType) && _subType.equals(ct._subType)
- && _parameters.equals(ct._parameters);
+ return _baseType.equals(ct._baseType) && _subType.equals(ct._subType) && _parameters.equals(ct._parameters);
}
/**
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/corelib/mixins/Autocomplete.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/corelib/mixins/Autocomplete.java?rev=609067&r1=609066&r2=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/corelib/mixins/Autocomplete.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/corelib/mixins/Autocomplete.java Fri Jan 4 16:29:20 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.
@@ -19,6 +19,7 @@
import org.apache.tapestry.annotations.InjectContainer;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.annotations.Path;
+import org.apache.tapestry.internal.services.ResponseRenderer;
import org.apache.tapestry.internal.util.Holder;
import org.apache.tapestry.ioc.annotations.Inject;
import org.apache.tapestry.ioc.services.TypeCoercer;
@@ -57,6 +58,7 @@
public class Autocomplete
{
static final String EVENT_NAME = "autocomplete";
+
private static final String PARAM_NAME = "t:input";
/**
@@ -94,6 +96,9 @@
@Parameter(defaultPrefix = "literal")
private int _minChars;
+ @Inject
+ private ResponseRenderer _responseRenderer;
+
/**
* Overrides the default check frequency for determining whether to send a server request.
@@ -193,7 +198,9 @@
_resources.triggerEvent("providecompletions", new Object[]{input}, handler);
- MarkupWriter writer = _factory.newMarkupWriter(null);
+ ContentType contentType = _responseRenderer.findContentType(this);
+
+ MarkupWriter writer = _factory.newMarkupWriter(contentType);
// T4.1 has more flexibility, it can decorate the options with icons, etc.
// But this will do for now. The Autocompleter widget will display
@@ -211,6 +218,6 @@
writer.end(); // ul
- return new TextStreamResponse("text/html", writer.toString());
+ return new TextStreamResponse(contentType.getMimeType(), writer.toString());
}
}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/InternalConstants.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/InternalConstants.java?rev=609067&r1=609066&r2=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/InternalConstants.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/InternalConstants.java Fri Jan 4 16:29:20 2008
@@ -58,7 +58,7 @@
/**
* Used in some Ajax scenarios to set the content type for the response early, when the Page instance
- * (the authority on content types) is known. The value is of type {@link org.apache.tapestry.internal.util.ContentType}.
+ * (the authority on content types) is known. The value is of type {@link org.apache.tapestry.ContentType}.
*/
public static final String CONTENT_TYPE_ATTRIBUTE_NAME = "content-type";
public static final String CHARSET_CONTENT_TYPE_PARAMETER = "charset";
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/AjaxComponentActionRequestHandler.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/AjaxComponentActionRequestHandler.java?rev=609067&r1=609066&r2=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/AjaxComponentActionRequestHandler.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/AjaxComponentActionRequestHandler.java Fri Jan 4 16:29:20 2008
@@ -15,11 +15,11 @@
package org.apache.tapestry.internal.services;
import org.apache.tapestry.ComponentEventHandler;
+import org.apache.tapestry.ContentType;
import org.apache.tapestry.TapestryConstants;
import org.apache.tapestry.internal.InternalConstants;
import org.apache.tapestry.internal.structure.ComponentPageElement;
import org.apache.tapestry.internal.structure.Page;
-import org.apache.tapestry.internal.util.ContentType;
import org.apache.tapestry.internal.util.Holder;
import org.apache.tapestry.json.JSONObject;
import org.apache.tapestry.runtime.Component;
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/AjaxPartialResponseRendererImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/AjaxPartialResponseRendererImpl.java?rev=609067&r1=609066&r2=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/AjaxPartialResponseRendererImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/AjaxPartialResponseRendererImpl.java Fri Jan 4 16:29:20 2008
@@ -14,9 +14,9 @@
package org.apache.tapestry.internal.services;
+import org.apache.tapestry.ContentType;
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.internal.InternalConstants;
-import org.apache.tapestry.internal.util.ContentType;
import org.apache.tapestry.json.JSONObject;
import org.apache.tapestry.runtime.RenderCommand;
import org.apache.tapestry.services.*;
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MarkupWriterFactoryImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MarkupWriterFactoryImpl.java?rev=609067&r1=609066&r2=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MarkupWriterFactoryImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MarkupWriterFactoryImpl.java Fri Jan 4 16:29:20 2008
@@ -14,11 +14,11 @@
package org.apache.tapestry.internal.services;
+import org.apache.tapestry.ContentType;
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.dom.DefaultMarkupModel;
import org.apache.tapestry.dom.MarkupModel;
import org.apache.tapestry.dom.XMLMarkupModel;
-import org.apache.tapestry.internal.util.ContentType;
import org.apache.tapestry.services.MarkupWriterFactory;
public class MarkupWriterFactoryImpl implements MarkupWriterFactory
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageContentTypeAnalyzer.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageContentTypeAnalyzer.java?rev=609067&r1=609066&r2=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageContentTypeAnalyzer.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageContentTypeAnalyzer.java Fri Jan 4 16:29:20 2008
@@ -14,14 +14,14 @@
package org.apache.tapestry.internal.services;
+import org.apache.tapestry.ContentType;
import org.apache.tapestry.internal.structure.Page;
-import org.apache.tapestry.internal.util.ContentType;
public interface PageContentTypeAnalyzer
{
/**
* Analyzes the meta-data for the page and identifies the correct
- * {@link org.apache.tapestry.internal.util.ContentType} (including encoding).
+ * {@link org.apache.tapestry.ContentType} (including encoding).
*
* @param page to be rendered
* @return the content type
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageContentTypeAnalyzerImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageContentTypeAnalyzerImpl.java?rev=609067&r1=609066&r2=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageContentTypeAnalyzerImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageContentTypeAnalyzerImpl.java Fri Jan 4 16:29:20 2008
@@ -15,10 +15,10 @@
package org.apache.tapestry.internal.services;
import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.ContentType;
import org.apache.tapestry.TapestryConstants;
import org.apache.tapestry.internal.InternalConstants;
import org.apache.tapestry.internal.structure.Page;
-import org.apache.tapestry.internal.util.ContentType;
import org.apache.tapestry.services.MetaDataLocator;
public class PageContentTypeAnalyzerImpl implements PageContentTypeAnalyzer
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageResponseRendererImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageResponseRendererImpl.java?rev=609067&r1=609066&r2=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageResponseRendererImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/PageResponseRendererImpl.java Fri Jan 4 16:29:20 2008
@@ -14,9 +14,9 @@
package org.apache.tapestry.internal.services;
+import org.apache.tapestry.ContentType;
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.internal.structure.Page;
-import org.apache.tapestry.internal.util.ContentType;
import org.apache.tapestry.services.MarkupWriterFactory;
import org.apache.tapestry.services.Response;
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/RequestEncodingInitializerImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/RequestEncodingInitializerImpl.java?rev=609067&r1=609066&r2=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/RequestEncodingInitializerImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/RequestEncodingInitializerImpl.java Fri Jan 4 16:29:20 2008
@@ -15,9 +15,9 @@
package org.apache.tapestry.internal.services;
import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.ContentType;
import org.apache.tapestry.TapestryConstants;
import org.apache.tapestry.internal.structure.Page;
-import org.apache.tapestry.internal.util.ContentType;
import org.apache.tapestry.services.MetaDataLocator;
import org.apache.tapestry.services.Request;
@@ -29,8 +29,7 @@
private final Request _request;
- public RequestEncodingInitializerImpl(RequestPageCache cache, MetaDataLocator locator,
- Request request)
+ public RequestEncodingInitializerImpl(RequestPageCache cache, MetaDataLocator locator, Request request)
{
_cache = cache;
_locator = locator;
@@ -42,15 +41,12 @@
Page page = _cache.get(pageName);
ComponentResources pageResources = page.getRootElement().getComponentResources();
- String contentTypeString = _locator.findMeta(
- TapestryConstants.RESPONSE_CONTENT_TYPE,
- pageResources);
+ String contentTypeString = _locator.findMeta(TapestryConstants.RESPONSE_CONTENT_TYPE, pageResources);
ContentType contentType = new ContentType(contentTypeString);
String encoding = contentType.getParameter("charset");
- if (encoding == null)
- encoding = _locator.findMeta(TapestryConstants.RESPONSE_ENCODING, pageResources);
+ if (encoding == null) encoding = _locator.findMeta(TapestryConstants.RESPONSE_ENCODING, pageResources);
_request.setEncoding(encoding);
}
Added: 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=609067&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRenderer.java (added)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRenderer.java Fri Jan 4 16:29:20 2008
@@ -0,0 +1,32 @@
+// Copyright 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.
+// 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.internal.services;
+
+import org.apache.tapestry.ContentType;
+
+/**
+ * Public facade around internal services related to rendering a markup response.
+ */
+public interface ResponseRenderer
+{
+ /**
+ * Finds the content type for the page containing the indicated component.
+ *
+ * @param component a component within a page
+ * @return the content type
+ * @throws IllegalArgumentException if the component parameter is not a component
+ */
+ ContentType findContentType(Object component);
+}
Added: 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=609067&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRendererImpl.java (added)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResponseRendererImpl.java Fri Jan 4 16:29:20 2008
@@ -0,0 +1,44 @@
+// Copyright 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.
+// 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.internal.services;
+
+import org.apache.tapestry.ContentType;
+import org.apache.tapestry.internal.structure.Page;
+import org.apache.tapestry.ioc.internal.util.Defense;
+import org.apache.tapestry.runtime.Component;
+
+public class ResponseRendererImpl implements ResponseRenderer
+{
+ private final RequestPageCache _pageCache;
+
+ private final PageContentTypeAnalyzer _pageContentAnalyzer;
+
+ public ResponseRendererImpl(RequestPageCache pageCache, PageContentTypeAnalyzer pageContentAnalyzer)
+ {
+ _pageCache = pageCache;
+ _pageContentAnalyzer = pageContentAnalyzer;
+ }
+
+ public ContentType findContentType(Object component)
+ {
+ Component c = Defense.cast(component, Component.class, "component");
+
+ String pageName = c.getComponentResources().getPageName();
+
+ Page page = _pageCache.get(pageName);
+
+ return _pageContentAnalyzer.findContentType(page);
+ }
+}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java?rev=609067&r1=609066&r2=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java Fri Jan 4 16:29:20 2008
@@ -16,6 +16,7 @@
import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.ComponentResourcesCommon;
+import org.apache.tapestry.ContentType;
import org.apache.tapestry.Link;
import org.apache.tapestry.internal.*;
import org.apache.tapestry.internal.events.InvalidationListener;
@@ -545,5 +546,15 @@
protected final ComponentClassCache mockComponentClassCache()
{
return newMock(ComponentClassCache.class);
+ }
+
+ protected void train_findContentType(PageContentTypeAnalyzer analyzer, Page page, ContentType contentType)
+ {
+ expect(analyzer.findContentType(page)).andReturn(contentType).atLeastOnce();
+ }
+
+ protected final PageContentTypeAnalyzer mockPageContentTypeAnalyzer()
+ {
+ return newMock(PageContentTypeAnalyzer.class);
}
}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/test/TestableMarkupWriterFactoryImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/test/TestableMarkupWriterFactoryImpl.java?rev=609067&r1=609066&r2=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/test/TestableMarkupWriterFactoryImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/test/TestableMarkupWriterFactoryImpl.java Fri Jan 4 16:29:20 2008
@@ -14,8 +14,8 @@
package org.apache.tapestry.internal.test;
+import org.apache.tapestry.ContentType;
import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.internal.util.ContentType;
import static org.apache.tapestry.ioc.IOCConstants.PERTHREAD_SCOPE;
import org.apache.tapestry.ioc.annotations.Scope;
import org.apache.tapestry.services.Core;
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=609067&r1=609066&r2=609067&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 Fri Jan 4 16:29:20 2008
@@ -1,21 +1,21 @@
-// 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;
import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.internal.util.ContentType;
/**
* Source for {@link org.apache.tapestry.MarkupWriter} instances.
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=609067&r1=609066&r2=609067&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 Fri Jan 4 16:29:20 2008
@@ -113,7 +113,7 @@
binder.bind(PageRenderQueue.class, PageRenderQueueImpl.class);
binder.bind(AjaxPartialResponseRenderer.class, AjaxPartialResponseRendererImpl.class);
binder.bind(PageContentTypeAnalyzer.class, PageContentTypeAnalyzerImpl.class);
-
+ binder.bind(ResponseRenderer.class, ResponseRendererImpl.class);
}
public static Alias build(Logger logger,
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/ContentTypeTest.java (from r594319, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/util/ContentTypeTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/ContentTypeTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/ContentTypeTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/util/ContentTypeTest.java&r1=594319&r2=609067&rev=609067&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/util/ContentTypeTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/ContentTypeTest.java Fri Jan 4 16:29:20 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.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.util;
+package org.apache.tapestry;
import org.testng.Assert;
import org.testng.annotations.Test;
Added: 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=609067&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ResponseRendererImplTest.java (added)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ResponseRendererImplTest.java Fri Jan 4 16:29:20 2008
@@ -0,0 +1,52 @@
+// Copyright 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.
+// 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.internal.services;
+
+import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.ContentType;
+import org.apache.tapestry.internal.structure.Page;
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.runtime.Component;
+import org.testng.annotations.Test;
+
+public class ResponseRendererImplTest extends InternalBaseTestCase
+{
+ @Test
+ public void content_type_from_component()
+ {
+ RequestPageCache cache = mockRequestPageCache();
+ PageContentTypeAnalyzer analyzer = mockPageContentTypeAnalyzer();
+ Component component = mockComponent();
+ String pageName = "foo/bar";
+ Page page = mockPage();
+ ContentType contentType = new ContentType("zig/zag");
+ ComponentResources resources = mockComponentResources();
+
+ train_getComponentResources(component, resources);
+ train_getPageName(resources, pageName);
+ train_get(cache, pageName, page);
+
+ train_findContentType(analyzer, page, contentType);
+
+ replay();
+
+ ResponseRenderer renderer = new ResponseRendererImpl(cache, analyzer);
+
+ assertSame(renderer.findContentType(component), contentType);
+
+ verify();
+ }
+
+}