You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2007/11/13 23:01:23 UTC
svn commit: r594663 - in /tapestry/tapestry5/trunk:
tapestry-core/src/main/java/org/apache/tapestry/internal/services/
tapestry-core/src/main/java/org/apache/tapestry/internal/test/
tapestry-core/src/main/java/org/apache/tapestry/test/ tapestry-ioc/src...
Author: hlship
Date: Tue Nov 13 14:01:22 2007
New Revision: 594663
URL: http://svn.apache.org/viewvc?rev=594663&view=rev
Log:
TAPESTRY-1882: Formatted messages are not localized properly
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MapMessages.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MessagesSourceImpl.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/test/TapestryTestCase.java
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImpl.java
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/MessagesImpl.java
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/util/AbstractMessages.java
tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImplTest.java
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MapMessages.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MapMessages.java?rev=594663&r1=594662&r2=594663&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MapMessages.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MapMessages.java Tue Nov 13 14:01:22 2007
@@ -22,6 +22,7 @@
import org.apache.tapestry.ioc.Messages;
import org.apache.tapestry.ioc.util.AbstractMessages;
+import java.util.Locale;
import java.util.Map;
/**
@@ -31,13 +32,16 @@
{
private final Map<String, String> _properties;
+
/**
* A new instance <strong>retaining</strong> (not copying) the provided map.
*/
- public MapMessages(final Map<String, String> properties)
+ public MapMessages(Locale locale, Map<String, String> properties)
{
+ super(locale);
_properties = properties;
}
+
@Override
protected String valueForKey(String key)
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MessagesSourceImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MessagesSourceImpl.java?rev=594663&r1=594662&r2=594663&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MessagesSourceImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MessagesSourceImpl.java Tue Nov 13 14:01:22 2007
@@ -95,7 +95,7 @@
{
Map<String, String> properties = findBundleProperties(bundle, locale);
- return new MapMessages(properties);
+ return new MapMessages(locale, properties);
}
/**
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=594663&r1=594662&r2=594663&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 Tue Nov 13 14:01:22 2007
@@ -71,10 +71,9 @@
// A synthetic module to ensure that the tapestry.alias-mode is set correctly.
- SymbolProvider provider = new SingleKeySymbolProvider(
- InternalConstants.TAPESTRY_ALIAS_MODE_SYMBOL, "servlet");
- ContributionDef contribution = new SyntheticSymbolSourceContributionDef("AliasMode",
- provider, "before:ApplicationDefaults");
+ SymbolProvider provider = new SingleKeySymbolProvider(InternalConstants.TAPESTRY_ALIAS_MODE_SYMBOL, "servlet");
+ ContributionDef contribution = new SyntheticSymbolSourceContributionDef("AliasMode", provider,
+ "before:ApplicationDefaults");
ModuleDef module = new SyntheticModuleDef(contribution);
@@ -146,8 +145,8 @@
return newMock(ComponentTemplate.class);
}
- protected final <T> void train_getService(InternalRegistry registry, String serviceId,
- Class<T> serviceInterface, T service)
+ protected final <T> void train_getService(InternalRegistry registry, String serviceId, Class<T> serviceInterface,
+ T service)
{
expect(registry.getService(serviceId, serviceInterface)).andReturn(service);
@@ -183,8 +182,7 @@
return newMock(RenderQueue.class);
}
- protected final void train_parseTemplate(TemplateParser parser, Resource resource,
- ComponentTemplate template)
+ protected final void train_parseTemplate(TemplateParser parser, Resource resource, ComponentTemplate template)
{
expect(parser.parseTemplate(resource)).andReturn(template);
}
@@ -219,8 +217,8 @@
expect(request.getContextPath()).andReturn(contextPath).atLeastOnce();
}
- protected final void train_resolvePageClassNameToPageName(ComponentClassResolver resolver,
- String pageClassName, String pageName)
+ protected final void train_resolvePageClassNameToPageName(ComponentClassResolver resolver, String pageClassName,
+ String pageName)
{
expect(resolver.resolvePageClassNameToPageName(pageClassName)).andReturn(pageName);
}
@@ -230,8 +228,7 @@
expect(element.getContainingPage()).andReturn(page).atLeastOnce();
}
- protected final void train_getComponentResources(ComponentPageElement element,
- InternalComponentResources resources)
+ protected final void train_getComponentResources(ComponentPageElement element, InternalComponentResources resources)
{
expect(element.getComponentResources()).andReturn(resources).atLeastOnce();
}
@@ -241,8 +238,8 @@
expect(model.getComponentClassName()).andReturn(className).atLeastOnce();
}
- protected final void train_newRenderBodyElement(PageElementFactory elementFactory,
- ComponentPageElement component, PageElement body)
+ protected final void train_newRenderBodyElement(PageElementFactory elementFactory, ComponentPageElement component,
+ PageElement body)
{
expect(elementFactory.newRenderBodyElement(component)).andReturn(body);
}
@@ -257,21 +254,13 @@
expect(model.getParameterNames()).andReturn(Arrays.asList(names));
}
- protected final void train_newComponentElement(PageElementFactory elementFactory,
- ComponentPageElement container, String embeddedId,
- String embeddedType,
- String componentClassName, String elementName, Location location,
- ComponentPageElement embedded)
- {
- expect(
- elementFactory.newComponentElement(
- isA(Page.class),
- eq(container),
- eq(embeddedId),
- eq(embeddedType),
- eq(componentClassName),
- eq(elementName),
- eq(location))).andReturn(embedded);
+ protected final void train_newComponentElement(PageElementFactory elementFactory, ComponentPageElement container,
+ String embeddedId, String embeddedType, String componentClassName,
+ String elementName, Location location, ComponentPageElement embedded)
+ {
+ expect(elementFactory.newComponentElement(isA(Page.class), eq(container), eq(embeddedId), eq(embeddedType),
+ eq(componentClassName), eq(elementName), eq(location))).andReturn(
+ embedded);
}
protected final void train_getComponentType(EmbeddedComponentModel emodel, String componentType)
@@ -320,8 +309,8 @@
expect(model.getEmbeddedComponentIds()).andReturn(Arrays.asList(ids));
}
- protected void train_getTemplate(ComponentTemplateSource templateSource, ComponentModel model,
- Locale locale, ComponentTemplate template)
+ protected void train_getTemplate(ComponentTemplateSource templateSource, ComponentModel model, Locale locale,
+ ComponentTemplate template)
{
expect(templateSource.getTemplate(model, locale)).andReturn(template);
}
@@ -331,11 +320,10 @@
expect(resources.getComponentModel()).andReturn(model).atLeastOnce();
}
- protected final void train_newRootComponentElement(PageElementFactory elementFactory,
- String className, ComponentPageElement rootElement)
+ protected final void train_newRootComponentElement(PageElementFactory elementFactory, String className,
+ ComponentPageElement rootElement)
{
- expect(elementFactory.newRootComponentElement(isA(Page.class), eq(className))).andReturn(
- rootElement);
+ expect(elementFactory.newRootComponentElement(isA(Page.class), eq(className))).andReturn(rootElement);
}
protected final void train_getModel(Instantiator ins, ComponentModel model)
@@ -358,8 +346,7 @@
return newMock(RequestPageCache.class);
}
- protected final void train_getComponentElementByNestedId(Page page, String nestedId,
- ComponentPageElement element)
+ protected final void train_getComponentElementByNestedId(Page page, String nestedId, ComponentPageElement element)
{
expect(page.getComponentElementByNestedId(nestedId)).andReturn(element).atLeastOnce();
}
@@ -389,8 +376,7 @@
return newMock(ResourceCache.class);
}
- protected final void train_requiresDigest(ResourceCache cache, Resource resource,
- boolean requiresChecksum)
+ protected final void train_requiresDigest(ResourceCache cache, Resource resource, boolean requiresChecksum)
{
expect(cache.requiresDigest(resource)).andReturn(requiresChecksum);
}
@@ -400,8 +386,7 @@
return newMock(InvalidationListener.class);
}
- protected final void train_getTimeModified(ResourceCache cache, Resource resource,
- long timeModified)
+ protected final void train_getTimeModified(ResourceCache cache, Resource resource, long timeModified)
{
expect(cache.getTimeModified(resource)).andReturn(timeModified).atLeastOnce();
}
@@ -416,8 +401,8 @@
expect(cache.get(pageName)).andReturn(page).atLeastOnce();
}
- protected final void train_findPageTemplateResource(PageTemplateLocator locator,
- ComponentModel model, Locale locale, Resource resource)
+ protected final void train_findPageTemplateResource(PageTemplateLocator locator, ComponentModel model,
+ Locale locale, Resource resource)
{
expect(locator.findPageTemplateResource(model, locale)).andReturn(resource).atLeastOnce();
}
@@ -437,7 +422,7 @@
ResourceBundle bundle = ResourceBundle
.getBundle("org.apache.tapestry.internal.ValidationMessages");
- _validationMessages = new MessagesImpl(bundle);
+ _validationMessages = new MessagesImpl(Locale.ENGLISH, bundle);
}
return _validationMessages;
@@ -473,8 +458,7 @@
expect(resolver.isPageName(isA(String.class))).andStubReturn(result);
}
- protected final void train_isPageName(ComponentClassResolver resolver, String pageName,
- boolean result)
+ protected final void train_isPageName(ComponentClassResolver resolver, String pageName, boolean result)
{
expect(resolver.isPageName(pageName)).andReturn(result);
}
@@ -522,8 +506,8 @@
return newMock(DocumentHeadBuilder.class);
}
- protected final void train_canonicalizePageName(ComponentClassResolver resolver,
- String pageName, String canonicalized)
+ protected final void train_canonicalizePageName(ComponentClassResolver resolver, String pageName,
+ String canonicalized)
{
expect(resolver.canonicalizePageName(pageName)).andReturn(canonicalized);
}
@@ -533,8 +517,8 @@
expect(page.getLogicalName()).andReturn(logicalName).atLeastOnce();
}
- protected final void train_resolvePageNameToClassName(ComponentClassResolver resolver,
- String pageName, String pageClassName)
+ protected final void train_resolvePageNameToClassName(ComponentClassResolver resolver, String pageName,
+ String pageClassName)
{
expect(resolver.resolvePageNameToClassName(pageName)).andReturn(pageClassName)
.atLeastOnce();
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/test/TapestryTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/test/TapestryTestCase.java?rev=594663&r1=594662&r2=594663&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/test/TapestryTestCase.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/test/TapestryTestCase.java Tue Nov 13 14:01:22 2007
@@ -67,8 +67,7 @@
return new MarkupWriterImpl();
}
- protected final void train_getAliasesForMode(AliasManager manager, String mode,
- Map<Class, Object> configuration)
+ protected final void train_getAliasesForMode(AliasManager manager, String mode, Map<Class, Object> configuration)
{
expect(manager.getAliasesForMode(mode)).andReturn(configuration);
}
@@ -325,29 +324,28 @@
}
}
- protected final void train_addField(ClassTransformation transformation, int modifiers,
- String type, String suggestedName, String actualName)
+ protected final void train_addField(ClassTransformation transformation, int modifiers, String type,
+ String suggestedName, String actualName)
{
expect(transformation.addField(modifiers, type, suggestedName)).andReturn(actualName);
}
- protected final void train_addInjectedField(ClassTransformation ct, Class type,
- String suggestedName, Object value, String fieldName)
+ protected final void train_addInjectedField(ClassTransformation ct, Class type, String suggestedName, Object value,
+ String fieldName)
{
expect(ct.addInjectedField(type, suggestedName, value)).andReturn(fieldName);
}
- protected final void train_addMethod(ClassTransformation transformation,
- TransformMethodSignature signature, String... body)
+ protected final void train_addMethod(ClassTransformation transformation, TransformMethodSignature signature,
+ String... body)
{
transformation.addMethod(eq(signature), codeEq(join(body)));
}
- protected final void train_buildConstraints(ValidationConstraintGenerator generator,
- Class propertyType, AnnotationProvider provider, String... constraints)
+ protected final void train_buildConstraints(ValidationConstraintGenerator generator, Class propertyType,
+ AnnotationProvider provider, String... constraints)
{
- expect(generator.buildConstraints(propertyType, provider)).andReturn(
- Arrays.asList(constraints));
+ expect(generator.buildConstraints(propertyType, provider)).andReturn(Arrays.asList(constraints));
}
protected final <T> void train_create(ApplicationStateCreator<T> creator, T aso)
@@ -360,18 +358,12 @@
expect(factory.createAsset(resource)).andReturn(asset);
}
- protected final void train_createValidator(FieldValidatorSource source, Field field,
- String validatorType, String constraintValue, String overrideId,
- Messages overrideMessages, Locale locale, FieldValidator result)
- {
- expect(
- source.createValidator(
- field,
- validatorType,
- constraintValue,
- overrideId,
- overrideMessages,
- locale)).andReturn(result);
+ protected final void train_createValidator(FieldValidatorSource source, Field field, String validatorType,
+ String constraintValue, String overrideId, Messages overrideMessages,
+ Locale locale, FieldValidator result)
+ {
+ expect(source.createValidator(field, validatorType, constraintValue, overrideId, overrideMessages,
+ locale)).andReturn(result);
}
protected final void train_encodeRedirectURL(Response response, String URI, String encoded)
@@ -384,8 +376,8 @@
expect(response.encodeURL(inputURL)).andReturn(outputURL);
}
- protected final <T> void train_exists(ApplicationStatePersistenceStrategy strategy,
- Class<T> asoClass, boolean exists)
+ protected final <T> void train_exists(ApplicationStatePersistenceStrategy strategy, Class<T> asoClass,
+ boolean exists)
{
expect(strategy.exists(asoClass)).andReturn(exists);
}
@@ -395,14 +387,13 @@
transformation.extendConstructor(codeEq(join(body)));
}
- protected final void train_extendMethod(ClassTransformation transformation,
- TransformMethodSignature signature, String... body)
+ protected final void train_extendMethod(ClassTransformation transformation, TransformMethodSignature signature,
+ String... body)
{
transformation.extendMethod(eq(signature), codeEq(join(body)));
}
- protected final void train_findAsset(AssetSource source, Resource root, String path,
- Locale locale, Asset asset)
+ protected final void train_findAsset(AssetSource source, Resource root, String path, Locale locale, Asset asset)
{
expect(source.findAsset(root, path, locale)).andReturn(asset);
}
@@ -457,26 +448,24 @@
expect(tf.findMethodsWithAnnotation(annotationType)).andReturn(sigs);
}
- protected final void train_findUnclaimedFields(ClassTransformation transformation,
- String... fieldNames)
+ protected final void train_findUnclaimedFields(ClassTransformation transformation, String... fieldNames)
{
expect(transformation.findUnclaimedFields()).andReturn(Arrays.asList(fieldNames));
}
- protected final void train_generateChecksum(ResourceDigestGenerator generator, URL url,
- String digest)
+ protected final void train_generateChecksum(ResourceDigestGenerator generator, URL url, String digest)
{
expect(generator.generateDigest(url)).andReturn(digest);
}
- protected final <T> void train_get(ApplicationStatePersistenceStrategy strategy,
- Class<T> asoClass, ApplicationStateCreator<T> creator, T aso)
+ protected final <T> void train_get(ApplicationStatePersistenceStrategy strategy, Class<T> asoClass,
+ ApplicationStateCreator<T> creator, T aso)
{
expect(strategy.get(asoClass, creator)).andReturn(aso);
}
- protected final void train_get(ApplicationStatePersistenceStrategySource source,
- String strategyName, ApplicationStatePersistenceStrategy strategy)
+ protected final void train_get(ApplicationStatePersistenceStrategySource source, String strategyName,
+ ApplicationStatePersistenceStrategy strategy)
{
expect(source.get(strategyName)).andReturn(strategy).atLeastOnce();
}
@@ -516,8 +505,7 @@
expect(source.getClasspathAsset(path)).andReturn(asset);
}
- protected final void train_getClasspathAsset(AssetSource source, String path, Locale locale,
- Asset asset)
+ protected final void train_getClasspathAsset(AssetSource source, String path, Locale locale, Asset asset)
{
expect(source.getClasspathAsset(path, locale)).andReturn(asset);
}
@@ -537,8 +525,7 @@
expect(model.getComponentClassName()).andReturn(className).atLeastOnce();
}
- protected final void train_getComponentResources(Component component,
- ComponentResources resources)
+ protected final void train_getComponentResources(Component component, ComponentResources resources)
{
expect(component.getComponentResources()).andReturn(resources).atLeastOnce();
}
@@ -558,8 +545,7 @@
expect(resources.getContainer()).andReturn(container).atLeastOnce();
}
- protected final void train_getContainerMessages(ComponentResources resources,
- Messages containerMessages)
+ protected final void train_getContainerMessages(ComponentResources resources, Messages containerMessages)
{
expect(resources.getContainerMessages()).andReturn(containerMessages).atLeastOnce();
}
@@ -575,21 +561,19 @@
expect(request.getDateHeader(name)).andReturn(value).atLeastOnce();
}
- protected final <T extends Annotation> void train_getFieldAnnotation(
- ClassTransformation transformation, String fieldName, Class<T> annotationClass,
- T annotation)
+ protected final <T extends Annotation> void train_getFieldAnnotation(ClassTransformation transformation,
+ String fieldName, Class<T> annotationClass,
+ T annotation)
{
expect(transformation.getFieldAnnotation(fieldName, annotationClass)).andReturn(annotation);
}
- protected final void train_getFieldPersistenceStrategy(ComponentModel model, String fieldName,
- String fieldStrategy)
+ protected final void train_getFieldPersistenceStrategy(ComponentModel model, String fieldName, String fieldStrategy)
{
expect(model.getFieldPersistenceStrategy(fieldName)).andReturn(fieldStrategy).atLeastOnce();
}
- protected final void train_getFieldType(ClassTransformation transformation, String fieldName,
- String type)
+ protected final void train_getFieldType(ClassTransformation transformation, String fieldName, String type)
{
expect(transformation.getFieldType(fieldName)).andReturn(type).atLeastOnce();
@@ -644,8 +628,7 @@
expect(transformation.getMethodIdentifier(signature)).andReturn(id);
}
- protected final void train_getOutputStream(HttpServletResponse response,
- ServletOutputStream stream)
+ protected final void train_getOutputStream(HttpServletResponse response, ServletOutputStream stream)
{
try
{
@@ -698,8 +681,7 @@
expect(factory.getRootResource()).andReturn(rootResource);
}
- protected final void train_getSession(HttpServletRequest request, boolean create,
- HttpSession session)
+ protected final void train_getSession(HttpServletRequest request, boolean create, HttpSession session)
{
expect(request.getSession(create)).andReturn(session);
}
@@ -714,8 +696,8 @@
expect(model.getSupportsInformalParameters()).andReturn(supports);
}
- protected final void train_getValidationMessages(ValidationMessagesSource messagesSource,
- Locale locale, Messages messages)
+ protected final void train_getValidationMessages(ValidationMessagesSource messagesSource, Locale locale,
+ Messages messages)
{
expect(messagesSource.getValidationMessages(locale)).andReturn(messages).atLeastOnce();
}
@@ -726,8 +708,8 @@
}
@SuppressWarnings("unchecked")
- protected final void train_handleResult(ComponentEventHandler handler, Object result,
- Component component, String methodDescription, boolean abort)
+ protected final void train_handleResult(ComponentEventHandler handler, Object result, Component component,
+ String methodDescription, boolean abort)
{
expect(handler.handleResult(result, component, methodDescription)).andReturn(abort);
}
@@ -762,35 +744,27 @@
expect(parameter.name()).andReturn(name).atLeastOnce();
}
- protected final void train_newBinding(BindingFactory factory, String description,
- ComponentResources container, ComponentResources component, String expression,
- Location l, Binding binding)
+ protected final void train_newBinding(BindingFactory factory, String description, ComponentResources container,
+ ComponentResources component, String expression, Location l, Binding binding)
{
- expect(factory.newBinding(description, container, component, expression, l)).andReturn(
- binding);
+ expect(factory.newBinding(description, container, component, expression, l)).andReturn(binding);
}
protected void train_newBinding(BindingSource bindingSource, String description,
ComponentResources componentResources, String defaultBindingPrefix,
- String expression,
- Binding binding)
+ String expression, Binding binding)
{
- expect(
- bindingSource.newBinding(
- description,
- componentResources,
- defaultBindingPrefix,
- expression)).andReturn(binding);
+ expect(bindingSource.newBinding(description, componentResources, defaultBindingPrefix, expression)).andReturn(
+ binding);
}
- protected final void train_newMemberName(ClassTransformation transformation, String suggested,
- String name)
+ protected final void train_newMemberName(ClassTransformation transformation, String suggested, String name)
{
expect(transformation.newMemberName(suggested)).andReturn(name);
}
- protected final void train_newMemberName(ClassTransformation transformation, String prefix,
- String baseName, String name)
+ protected final void train_newMemberName(ClassTransformation transformation, String prefix, String baseName,
+ String name)
{
expect(transformation.newMemberName(prefix, baseName)).andReturn(name);
}
@@ -805,9 +779,8 @@
expect(env.peekRequired(type)).andReturn(value);
}
- protected final void train_provideInjection(InjectionProvider provider, String fieldName,
- Class fieldType, ObjectLocator locator,
- ClassTransformation transformation,
+ protected final void train_provideInjection(InjectionProvider provider, String fieldName, Class fieldType,
+ ObjectLocator locator, ClassTransformation transformation,
MutableComponentModel model, boolean result)
{
expect(provider.provideInjection(fieldName, fieldType, locator, transformation, model))
@@ -815,8 +788,8 @@
}
@SuppressWarnings("unchecked")
- protected final void train_renderInformalParameters(ComponentResources resources,
- final MarkupWriter writer, final Object... informals)
+ protected final void train_renderInformalParameters(ComponentResources resources, final MarkupWriter writer,
+ final Object... informals)
{
resources.renderInformalParameters(writer);
IAnswer answer = new IAnswer()
@@ -832,14 +805,13 @@
getMocksControl().andAnswer(answer);
}
- protected final void train_requiresDigest(ResourceDigestGenerator generator, String path,
- boolean requiresDigest)
+ protected final void train_requiresDigest(ResourceDigestGenerator generator, String path, boolean requiresDigest)
{
expect(generator.requiresDigest(path)).andReturn(requiresDigest);
}
- protected final void train_service(RequestHandler handler, Request request, Response response,
- boolean result) throws IOException
+ protected final void train_service(RequestHandler handler, Request request, Response response, boolean result)
+ throws IOException
{
expect(handler.service(request, response)).andReturn(result);
}
@@ -854,14 +826,12 @@
response.setContentType(contentType);
}
- protected final void train_setDateHeader(HttpServletResponse response, String headerName,
- long date)
+ protected final void train_setDateHeader(HttpServletResponse response, String headerName, long date)
{
response.setDateHeader(headerName, date);
}
- protected final void train_toClass(ClassTransformation transformation, String type,
- Class classForType)
+ protected final void train_toClass(ClassTransformation transformation, String type, Class classForType)
{
expect(transformation.toClass(type)).andReturn(classForType);
}
@@ -871,8 +841,7 @@
expect(asset.toClientURL()).andReturn(URL).atLeastOnce();
}
- protected final void train_toClientURL(ClasspathAssetAliasManager manager, String resourcePath,
- String clientURL)
+ protected final void train_toClientURL(ClasspathAssetAliasManager manager, String resourcePath, String clientURL)
{
expect(manager.toClientURL(resourcePath)).andReturn(clientURL);
}
@@ -882,8 +851,7 @@
expect(link.toRedirectURI()).andReturn(URI).atLeastOnce();
}
- protected final void train_toResourcePath(ClasspathAssetAliasManager manager, String clientURL,
- String resourcePath)
+ protected final void train_toResourcePath(ClasspathAssetAliasManager manager, String clientURL, String resourcePath)
{
expect(manager.toResourcePath(clientURL)).andReturn(resourcePath).atLeastOnce();
}
@@ -898,8 +866,8 @@
expect(annotation.value()).andReturn(value).atLeastOnce();
}
- protected final void train_create(BeanModelSource source, Class beanClass,
- boolean filterReadOnly, ComponentResources containerResources, BeanModel model)
+ protected final void train_create(BeanModelSource source, Class beanClass, boolean filterReadOnly,
+ ComponentResources containerResources, BeanModel model)
{
expect(source.create(beanClass, filterReadOnly, containerResources)).andReturn(model);
}
@@ -959,10 +927,8 @@
{
is = componentClass.getResourceAsStream(file);
- if (is == null)
- throw new RuntimeException(String.format(
- "Class %s does not have a message catalog.",
- componentClass.getName()));
+ if (is == null) throw new RuntimeException(
+ String.format("Class %s does not have a message catalog.", componentClass.getName()));
properties.load(is);
}
@@ -981,6 +947,6 @@
map.put(skey, properties.getProperty(skey));
}
- return new MapMessages(map);
+ return new MapMessages(Locale.ENGLISH, map);
}
}
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImpl.java?rev=594663&r1=594662&r2=594663&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImpl.java Tue Nov 13 14:01:22 2007
@@ -16,16 +16,19 @@
import org.apache.tapestry.ioc.MessageFormatter;
-/**
- *
- */
+import java.util.Locale;
+
+
public class MessageFormatterImpl implements MessageFormatter
{
private final String _format;
- public MessageFormatterImpl(String format)
+ private final Locale _locale;
+
+ public MessageFormatterImpl(String format, Locale locale)
{
_format = format;
+ _locale = locale;
}
public String format(Object... args)
@@ -46,7 +49,7 @@
// Might be tempting to create a Formatter object and just keep reusing it ... but
// Formatters are not threadsafe.
- return String.format(_format, args);
+ return String.format(_locale, _format, args);
}
}
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/MessagesImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/MessagesImpl.java?rev=594663&r1=594662&r2=594663&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/MessagesImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/MessagesImpl.java Tue Nov 13 14:01:22 2007
@@ -44,16 +44,17 @@
String className = forClass.getName();
String stringsClassName = className.replaceAll("Messages$", "Strings");
- ResourceBundle bundle = ResourceBundle.getBundle(
- stringsClassName,
- Locale.getDefault(),
- forClass.getClassLoader());
+ Locale locale = Locale.getDefault();
- return new MessagesImpl(bundle);
+ ResourceBundle bundle = ResourceBundle.getBundle(stringsClassName, locale, forClass.getClassLoader());
+
+ return new MessagesImpl(locale, bundle);
}
- public MessagesImpl(ResourceBundle bundle)
+ public MessagesImpl(Locale locale, ResourceBundle bundle)
{
+ super(locale);
+
// Our best (threadsafe) chance to determine all the available keys.
Enumeration<String> e = bundle.getKeys();
while (e.hasMoreElements())
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/util/AbstractMessages.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/util/AbstractMessages.java?rev=594663&r1=594662&r2=594663&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/util/AbstractMessages.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/util/AbstractMessages.java Tue Nov 13 14:01:22 2007
@@ -21,6 +21,7 @@
import org.apache.tapestry.ioc.internal.util.Invokable;
import org.apache.tapestry.ioc.internal.util.MessageFormatterImpl;
+import java.util.Locale;
import java.util.Map;
/**
@@ -36,6 +37,13 @@
*/
private final Map<String, MessageFormatter> _cache = newCaseInsensitiveMap();
+ private final Locale _locale;
+
+ protected AbstractMessages(Locale locale)
+ {
+ _locale = locale;
+ }
+
/**
* Invoked to provide the value for a particular key. This may be invoked multiple times even
* for the same key. The implementation should <em>ignore the case of the key</em>.
@@ -45,6 +53,7 @@
*/
protected abstract String valueForKey(String key);
+
public boolean contains(String key)
{
return valueForKey(key) != null;
@@ -88,7 +97,7 @@
{
String format = get(key);
- return new MessageFormatterImpl(format);
+ return new MessageFormatterImpl(format, _locale);
}
public String format(String key, Object... args)
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImplTest.java?rev=594663&r1=594662&r2=594663&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImplTest.java Tue Nov 13 14:01:22 2007
@@ -21,7 +21,7 @@
{
private String run(String format, Object... args)
{
- return new MessageFormatterImpl(format).format(args);
+ return new MessageFormatterImpl(format, null).format(args);
}
@Test
@@ -29,9 +29,7 @@
{
assertEquals(run("Tapestry is %s.", "cool"), "Tapestry is cool.");
assertEquals(run("Tapestry release #%d.", 5), "Tapestry release #5.");
- assertEquals(
- run("%s is %s at version %d.", "Tapestry", "cool", 5),
- "Tapestry is cool at version 5.");
+ assertEquals(run("%s is %s at version %d.", "Tapestry", "cool", 5), "Tapestry is cool at version 5.");
}
@Test
@@ -39,9 +37,7 @@
{
Throwable t = new RuntimeException("Just didn't feel right.");
- assertEquals(
- run("%s failed: %s", "Something", t),
- "Something failed: Just didn't feel right.");
+ assertEquals(run("%s failed: %s", "Something", t), "Something failed: Just didn't feel right.");
}
@Test
@@ -49,8 +45,6 @@
{
Throwable t = new NullPointerException();
- assertEquals(
- run("%s failed: %s", "Something", t),
- "Something failed: java.lang.NullPointerException");
+ assertEquals(run("%s failed: %s", "Something", t), "Something failed: java.lang.NullPointerException");
}
}