...
...
...
includes
...
Wicket
...
plugins
...
to
...
support
...
full
...
WebBeans
...
(JSR-299)
...
integration
...
for
...
the
...
Wicket
...
application
...
object,
...
and
...
dependency
...
injection
...
for
...
component
...
objects.
...
The
...
Application
...
object
...
can
...
use
...
the
...
following
...
capabilities:
...
- Injection
...
- using
...
- @In,
...
- @Named,
...
- and
...
- custom
...
- @BindingType
...
- injection
...
- for
...
- both
...
- application
...
- services
...
- and
...
- components
...
- and
...
- app-server
...
- resources
...
- (databases,
...
- jms,
...
- ejb,
...
- etc)
...
- Predefined
...
- aspects
...
- such
...
- as
...
- EJB's
...
- @TransactionAttribute
...
- and
...
- @RolesAllowed
...
- Both
...
- WebBeans
...
- and
...
- EJB
...
- interception
...
- using
...
- @Interceptors
...
- or
...
- @InterceptionType
...
- WebBeans
...
- @Observes
...
- for
...
- listening
...
- for
...
- application
...
- events
...
The
...
components
...
get
...
@In
...
and
...
@Named
...
injection,
...
but
...
not
...
the
...
other
...
capabilities,
...
since
...
interception
...
conflicts
...
with
...
the
...
Wicket
...
style
...
of
...
allowing
...
components
...
to
...
use
...
"new"
...
for
...
easy
...
instantiation.
...
The
...
three
...
plugin
...
classes
...
are
...
- com.caucho.wicket.ResinApplicationFactory
...
- -
...
- for
...
- creating
...
- applications
...
- com.caucho.wicket.ResinComponentInjector
...
- -
...
- for
...
- injecting
...
- component
...
- resources
...
- com.caucho.wicket.ResinWebApplication
...
- -
...
- as
...
- a
...
- convenience
...
- for
...
- injecting
...
- resources
...
The
...
application
...
factory
...
is
...
configured
...
in
...
Wicket's
...
<filter> definition as the applicationFactoryClassName. The sample WEB-INF/resin-web.xml
...
might
...
look
...
like
...
the
...
following:
Code Block |
---|
<pre><code> <web-app xmlns="http://caucho.com/ns/resin"> <filter filter-name="wicket" filter-class="org.apache.wicket.protocol.http.WicketFilter"> <init-param applicationClassName="demo.HelloWorldApplication" applicationFactoryClassName="com.caucho.wicket.ResinApplicationFactory"/> </filter> <filter-mapping url-pattern="/*" filter-name="wicket"/> </web-app> </code></pre> The component injector is registered with your Application object and looks like the following: <pre><code> |
The component injector is registered with your Application object and looks like the following:
Code Block |
---|
import com.caucho.wicket.*;
public MyApplication extends WebApplication {
public MyApplication()
{
addComponentInstantiationListener(new ResinComponentInjector());
}
...
}
</code></pre>
The Resin wiki page at [ |
The Resin wiki page at http://wiki.caucho.com/Wicket
...
also
...
provides
...
an
...
up-to-date
...
documentation
...
of
...
the
...
integration.
...