// Copyright 2006, 2007, 2008, 2009, 2010 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
// 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.
The service is configured using a collection of
s. Each mapping maps a prefix, such as "core"
to a root package name, such as "org.apache.tapestry5.corelib". The root package is expected to have sub-packages:
"pages", "components", "mixins" and "base" ("base" is for base classes).
The resolver performs a search of the classpath (via
), to build up a set of case-insensitive
maps from logical page name, component type, or mixin type to fully qualified class name.
Certain ambiguities occur if mapped packages overlap, either in terms of the the prefixes or the package names. Keep things clearly separate to avoid lookup problems.
java.lang.IllegalArgumentExceptionif the name does not match a known page class
pageClassNamefully qualified name of a page class
java.lang.IllegalArgumentExceptionif the name can not be resolved
java.lang.IllegalArgumentExceptionif the page name does not match a logical page name
componentTypea logical component type
java.lang.IllegalArgumentExceptionif the component type can not be resolved
mixinTypea logical mixin type
java.lang.IllegalArgumentExceptionif the mixin type can not be resolved
s to client URLs). This is derived from the contributed
It is allowed to contribute multiple root packages as a single folder name. In this case, the best common package
name is used. For example, if both
com.example.extras is mapped to
folder "example", then the package mapping for "example" will be