WINK-360 - Applying patch from gentaro oka to allow injection of members of Handler with Guice when using custom handlers
git-svn-id: https://svn.apache.org/repos/asf/incubator/wink/trunk@1328776 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/wink-guice-server/src/main/java/org/apache/wink/guice/server/internal/GuiceDeploymentConfiguration.java b/wink-guice-server/src/main/java/org/apache/wink/guice/server/internal/GuiceDeploymentConfiguration.java
index 3217e68..61f6f94 100644
--- a/wink-guice-server/src/main/java/org/apache/wink/guice/server/internal/GuiceDeploymentConfiguration.java
+++ b/wink-guice-server/src/main/java/org/apache/wink/guice/server/internal/GuiceDeploymentConfiguration.java
@@ -22,6 +22,7 @@
import org.apache.wink.common.internal.lifecycle.LifecycleManagersRegistry;
import org.apache.wink.guice.server.internal.lifecycle.GuiceInjectorLifeCycleManager;
import org.apache.wink.guice.server.internal.lifecycle.WinkGuiceModule;
+import org.apache.wink.server.handlers.Handler;
import org.apache.wink.server.internal.DeploymentConfiguration;
import com.google.inject.Guice;
@@ -34,11 +35,21 @@
public GuiceDeploymentConfiguration() {
LifecycleManagersRegistry lifecycleManagersRegistry = new LifecycleManagersRegistry();
setOfFactoryRegistry(lifecycleManagersRegistry);
- Injector injector = Guice.createInjector(createModules());
+ injector = Guice.createInjector(createModules());
lifecycleManagersRegistry.addFactoryFactory(new GuiceInjectorLifeCycleManager(injector));
}
public Module[] createModules() {
return new Module[] {new WinkGuiceModule()};
}
+
+ private final Injector injector;
+ @Override
+ protected <T extends Handler> T createHandler(Class<T> cls) {
+ try {
+ return injector.getInstance(cls);
+ } catch (Throwable th) {
+ return super.createHandler(cls);
+ }
+ }
}