I've been using Java Shindig for a few weeks now and there are some things I'd like to see changed.
* J2EE vs Plain Java * The major change should be a refactoring to make Shindig a code library as opposed to an application. Shindig makes deep assumptions about the environment it is running in. In particular, it assumes a J2EE compliant container. It then runs in that container as a standalone application. Developers must plug in to the Shindig application. I suggest a refactoring into two libraries: Shindig J2EE and a Shindig Engine. I don't see why Shindig has to be released as a set of servlets. For example, ProxyServlet is a thin wrapper around ProxyHandler. So, the engine is actually already there. * Dependency Injection is awful * DI is an implementation detail that should be left to users of Shindig. Shindig's use of Guice serves to obfuscate the internals of Shindig without a lot of benefit that I can see. I've been able to get Shindig up and running without using any of the DI. If I can do that, then it seems unnecessary. Leave this in the J2EE layer (which should be a separate library as I said above). * Documentation is not hard to write * I can't understand why there isn't minimal documentation. Take a few hours and document the main classes, how they work together and how an implementer might use them. Further, there are lots of hard coded values in the JS files (e.g. %js%) that aren't documented anywhere that I can see. It's wonderful that Shindig exists. But, so far, it's been very frustrating trying to get it to work in my environment. My comments above are a few of the reasons why it's so frustrating. Jordan Zimmerman Principal Software Architect 831.647.4712 831.214.2990 (cell) [email protected] SHOP*COMTM All your favorite stores. OneCart(r) convenience. www.shop.com This message (including any attachments) is intended only for the use of the individual or entity to which it is addressed and may contain information that is non-public, proprietary, privileged, confidential, and exempt from disclosure under applicable law or may constitute as attorney work product. If you are not the intended recipient, you are hereby notified that any use, dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this communication in error, notify us immediately by telephone and (i) destroy this message if a facsimile or (ii) delete this message immediately if this is an electronic communication. Thank you.

