Design goals
There are a few major design goals that drive all
architectural decisions for WTFIGO.
-
Simple installation - Basic installation must be as
error-proof and simple as possible
-
Container agnostic architecture - The overall
architecture is straight J2EE for maximum
portability
-
Zero runtime dependencies - No other libraries
should be
required
at runtime which could conflict with the app to be
debugged
-
Container/library smart - When known libraries are
available at runtime, they will be exploited. When they
are not available, WTFIGO will degrade gracefully
Architecture
A description of the architecture will go here. In the
meantime, here are some notes.
Filter was chosen because it is the least invasive and
most container indendent method. Also, it is easy to
remove WTFIGO before going into production. AOP was also
considered and could still be used but would add
dependencies.
Inspirado
The architecture and approach of WTFIGO has been highly
influenced by several other projects
- JTidyFilter
has an interesting approach for how to really do
a Buffered response with tees
- JWhich
from the xml-commons sandbox for several ideas around detecting installed
resources
-
Netbeans
as a nice HTTP Monitor built in
-
P6Spy
is a JDBC connection wrapper that monitors JDBC calls.
Also, the Koders
and JExample code search engines
have been hugely helpful.