Home
| SF Project
| Download
| Forum
| Bugs
| History
| For Coders
| HowTo
| Commentary
| TODO
|
I considered using IntelliJ. They kindly gave me a license to use version 7.0 for this opensource project, but I ended up not using it because it wouldn't create a GUI application framework as a basis. It would be nice if it had a number of options in this regard.
I also considered NetBeans. At the time, the 6.1 beta was available. It has the GUI features I wanted, but I don't care for how it interacts with Subversion, which is what I use as a repository. I much prefer the power Eclipse brings with its Subversive plugin. I delayed using Subversion for some time, waiting for a decent plugin for it. Now that I've been using Subversive, I don't want to give it up. So, I chose to use the Jigloo plugin for Eclipse to generate GUI code.
Once I had some basic stuff working, I decided to refactor the code so that it better followed the MVP Pattern. There is a variety of points of view of what constitutes MVP. I picked one and followed that. You might be using the MVP pattern and doing something quiet different.
You'll see in the code that there are essentially four components for each view. First, the view itself, which is as thin as possible, since it's harder to GUI code. Next, there's an interface that the view will implement. The next component, the Presenter, will always use the interface to communicate with the view. Among other things, this allows use to swap in a mock view for testing, which is what you'll find in the unit tests. Finally, there's a Model. In the case of DonsProxy, the model is the components that make up the existing proxy functionality.
Having refactored to MVP, I find that Jigloo has some trouble presenting the GUI editor. <sigh>
The move to SSLEngine makes the new DonsProxy faster than the original, by far. First, there's no more need for the Shim that the original used to terminate the client-side SSL connection. It was needed because there was no easy way to convert an existing clear-text connection to secure on the fly. Now, with SSLEngine, a connection can start off as clear-text, then switch to SSL as needed.
There could also be other subscriber types, such as ones that target LDAP or other protocols.
Another whole potential category is for Subscribers that collect metrics about a session, such as average response time. I haven't even begun to work on these yet.