import org.apache.wicket.Component;
import org.apache.wicket.application.IComponentInstantiationListener;
-import org.wamblee.inject.InjectorFactoryBuilder;
+import org.apache.wicket.protocol.http.WebApplication;
+import org.wamblee.inject.InjectorBuilder;
import org.wamblee.inject.SimpleInjector;
/**
- * Component instantiation listener that injects references into a component
- * using the injector mini-framework. Together with an implementation of the
- * mini-framework, Contexts and Depenency Injection support can be provided.
+ * <p>
+ * Component instantiation listener that injects references into a component
+ * using the injector mini-framework. Together with an implementation of the
+ * mini-framework, Contexts and Dependency Injection support can be provided or
+ * for standard Java EE injection into components. Or, other injection
+ * frameworks can be used.
+ * </p>
*
+ * <p>
+ * To use this injector override {@link WebApplication#init()} and add the
+ * listener:
+ * </p>
+ *
+ * <pre>
+ * @Override
+ * protected void init() {
+ * super.init();
+ * addComponentInstantiationListener(new ComponentInstantiationInjector());
+ * }
+ * </pre>
*
* @author Erik Brakkee
*/
public class ComponentInstantiationInjector implements
- IComponentInstantiationListener {
-
- private SimpleInjector injector;
-
+ IComponentInstantiationListener {
+
+ private SimpleInjector injector;
+
/**
- * Constructs the component instantiation listener.
+ * Constructs the component instantiation listener.
*/
- public ComponentInstantiationInjector() {
- injector = new SimpleInjector(InjectorFactoryBuilder.getInjectorFactory());
+ public ComponentInstantiationInjector() {
+ injector = new SimpleInjector(InjectorBuilder.getInjectorFactory());
}
-
+
@Override
public void onInstantiation(Component aComponent) {
injector.inject(aComponent);
+ aComponent.add(new InjectionBehavior());
}
}