guice 3.0 と Wicket の状況

Wicket 1.4Google guice の Module を指定する方法が、下記であったが、、
 addComponentInstantiationListener(new GuiceComponentInjector(this,new Module{...});
Wicket 1.5 では、addComponentInstantiationListener は使えなくなり代わりに
ComponentInstantiationListenerCollection get して、org.apache.wicket.injection.Injector を
add する方法
になり、

getComponentInstantiationListeners()
.add(new GuiceComponentInjector(this,new Module
{Moduleインスタンス}));


という方法になる。

guice 3.0 がJSR-330 対応でも、Wicket 1.5 RC3 の wicket-guce は、まだ JSR-330 未対応のために、
import  javax.injec.Inject;
import  javax.inject.Named;

は使えないので、
import  com.google.inject.Inject;
import  com.google.inject.name.Named;

を当面、使うことになりそうだ。

-----------------------------
import org.apache.wicket.guice.GuiceComponentInjector;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.Request;
import org.apache.wicket.request.Response;

public class SampleApplication extends WebApplication{
   @Override
   protected void init(){
      getComponentInstantiationListeners().add(new GuiceComponentInjector(this
      ,new Module[]{new AbstractModule(){
         @Override
         protected void configure(){
            binder().bind(new TypeLiteral<IDataProvider<User>>(){}).to(UserQuery.class);
         }
      }})
);
   }
   @Override
   public RuntimeConfigurationType getConfigurationType(){
      //return Application.DEPLOYMENT;
      return RuntimeConfigurationType.DEVELOPMENT;
   }
}

---------------------------------
JSR-330 の @Inject も対応するように、代わりのGuiceComponentInjector でも作ってみようかな。