メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2009年6月16日火曜日

[Apache Shindig][お勉強][OpenSocial] メモ16 Handlers

Handlersってどこでセットしているかというと、、、

web.xml内で、handlers名をサーブレット毎にセットしてて、
各サーブレットはセットされたhandlers名にマッチするHandlersのjava.util.Setを使うらしい。

付属のweb.xmlを見ると、


$ grep -Hi handlers java/server/target/shindig-server-1.1-SNAPSHOT/WEB-INF/web.full.xml
java/server/target/shindig-server-1.1-SNAPSHOT/WEB-INF/web.full.xml: <param-name>handlers</param-name>
java/server/target/shindig-server-1.1-SNAPSHOT/WEB-INF/web.full.xml: <param-value>org.apache.shindig.social.handlers</param-value>
java/server/target/shindig-server-1.1-SNAPSHOT/WEB-INF/web.full.xml: <param-name>handlers</param-name>
java/server/target/shindig-server-1.1-SNAPSHOT/WEB-INF/web.full.xml: <param-value>org.apache.shindig.social.handlers</param-value>
java/server/target/shindig-server-1.1-SNAPSHOT/WEB-INF/web.full.xml: <param-name>handlers</param-name>
java/server/target/shindig-server-1.1-SNAPSHOT/WEB-INF/web.full.xml: <param-value>org.apache.shindig.gadgets.handlers</param-value>
java/server/target/shindig-server-1.1-SNAPSHOT/WEB-INF/web.full.xml: <param-name>handlers</param-name>
java/server/target/shindig-server-1.1-SNAPSHOT/WEB-INF/web.full.xml: <param-value>org.apache.shindig.gadgets.handlers</param-value>
 

となっているので、使われているhandlers名は
* org.apache.shindig.social.handlers
* org.apache.shindig.gadgets.handlers
の2つっぽい。

で、
何がorg.apache.shindig.social.handlersという名はどのハンドラか
というと
org.apache.shindig.social.core.config.SocialApiGuiceModuleクラスに定義されている。

protected Set<Object> getHandlers() {
return ImmutableSet.<Object>of(ActivityHandler.class, AppDataHandler.class,
PersonHandler.class, MessageHandler.class);
}
 

ソースから判断するに、ハンドラは、
* org.apache.shindig.social.opensocial.service.ActivityHandler
* org.apache.shindig.social.opensocial.service.AppDataHandler
* org.apache.shindig.social.opensocial.service.MessageHandler
* org.apache.shindig.social.opensocial.service.PersonHandler
の4つ。

何がorg.apache.shindig.gadgets.handlersのハンドラか


というと、
org.apache.shindig.gadgets.DefaultGuiceModuleを見れば分かるかも。


bind(new TypeLiteral<Set<Object>>(){}).annotatedWith(
Names.named("org.apache.shindig.gadgets.handlers"))
.toInstance(ImmutableSet.<Object>of(InvalidationHandler.class, HttpRequestHandler.class));
 

とのこと。
つまり、
* org.apache.shindig.gadgets.http.InvalidationHandler
* org.apache.shindig.gadgets.servlet.HttpRequestHandler
の2つっぽい。



org.apache.shindig.social.handlersを使っているサーブレット
org.apache.shindig.social.handlersを使っているサーブレットは、
* socialRestapiServlet
* socialJsonRpcServlet
の2つ。

org.apache.shindig.gadgets.handlersを使っているサーブレット
org.apache.shindig.gadgets.handlersを使っているサーブレットは、
* gadgetsJsonRpcServlet
* gadgetsRestapiServlet
の2つ。

うーん・・。

gadgetsとsocialの2つあるのはなぜ??

.

0 コメント: