I have subclassed ComponentStringResourceLoader so that I can drive it
from a custom ResourceNameIterator (in particular to look in the right
directories). In particular, I just overrode
public String loadStringResource(Class clazz, final String key,
final Locale locale, final String style)
and only changed the line
ResourceNameIterator iter = new ResourceNameIterator(path, style,
locale, "properties,xml");
to use our iterator. Now it cannot find myApplication.properties and
I am at a bit of a loss as how this class ever got to
myApplication.properties. When it is constructing its list of
components it clearly stops at the Page and I don't see how it would
ever get to the Application.
private List getComponentStack(final Component component)
{
// Build the search stack
final List searchStack = new ArrayList();
searchStack.add(component.getClass());
if (!(component instanceof Page))
{
// Add all the component on the way to the Page
MarkupContainer container = component.getParent();
while (container != null)
{
searchStack.add(container.getClass());
if (container instanceof Page)
{
break;
}
container = container.getParent();
}
}
return searchStack;
}
What am I missing?
Thank you,
Scott
On Tue, Apr 15, 2008 at 12:30 PM, Scott Swank <[EMAIL PROTECTED]> wrote:
> Previously we retrieved the CompoundResourceStreamLocator and added
> our ResourceStreamLocator to it. In 1.2 did this take care of
> StringResourceLoader too?
>
> WebApplicationPath resourceFinder = (WebApplicationPath)
> getResourceSettings().getResourceFinder();
> resourceFinder.add(Env.getInstance().getAthenaDocRoot());
>
> CompoundResourceStreamLocator locator =
> (CompoundResourceStreamLocator)
> getResourceSettings().getResourceStreamLocator();
> locator.add(0, new WebPageResourceStreamLocator(resourceFinder));
>
> Thank you,
> Scott
>
>
>
>
> On Tue, Apr 15, 2008 at 10:55 AM, Scott Swank <[EMAIL PROTECTED]> wrote:
> > We are finally upgrading to Wicket 1.3 (in particular to 1.3.3 from
> > 1.2.6) and our StringResourceModels can no longer find their property
> > files, which leaves our web pages containing the following:
> >
> > [Warning: String resource for 'tickets' not found]
> >
> > Our application init method contains:
> >
> > IResourceFinder finder = getResourceSettings().getResourceFinder();
> > IResourceStreamLocator streamLocator = new
> > WebPageResourceStreamLocator(finder);
> > getResourceSettings().setResourceStreamLocator(streamLocator);
> >
> > and in our ResourceStreamLocator I added the following with a break
> > point on the System.out line:
> >
> > public IResourceStream locate(final Class clazz, String path, final
> > String variationAndStyle, final Locale locale, String extension)
> > {
> > if (!"html".equals(extension) && !path.endsWith(".js") &&
> > !path.endsWith(".css"))
> > {
> > System.out.println("break");
> > }
> > ...
> >
> > I never see the locate() method called in an attempt to find the
> > properties. Where should I be looking?
> >
> > Thank you,
> > Scott
> >
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]