Sweet. I'm checking out the complete branch now and will go through it. A bit later today I will add in the Filter stuff.

Before we cut over to this in the trunk, I'd like to take a stab at writing up some docs and post a note on the user list to solicit feedback on the revised design.

- James

Dan Diephouse wrote:
OK I'm done for the moment I think. Some outstanding issues/comments:

* I think things are simplified even more. I removed even more stuff from interfaces and went with a convention over configuration type approach for Providers. You only have to supply the bare minimum amount of information to get a Provider/CollectionAdapter set up now. This can easily be overridden though. Any use case that was supported previously should be supported now. * BasicAdapter stuff needs a once over for my changes. James - any chance you can take a look at this? I'm pretty much out of Abdera time for the day. I kind of think BasicAdapter needs a once over anyway. * The biggest thing that is still ugly is the resolution. I think the API is fine, but the default implementation may be a little big ugly yet (but it works! :-)) * If you notice inside the StructuredResolver I do a MimeType check to support POSTing of media collections. If you use the RegexTargetResolver it is currently impossible to do media posts to the same URL as non media entries. * I have the JCR test working locally as well, but I need to rebranch the build to include all modules.
* Do we really need getProperty/getPropertyNames on Provider?

Some more general coding suggestions:
* For tests like SimpleTest where we're starting/stopping servers we should use the @BeforeClass/@AfterClass annotations to set up and tear down the server. * I noticed a lot of the tests have the assertFoo(...) arguments reversed. The thing you want the assertion to match should be the first argument.
* The "test" package in the server module is a little redundant.
* If we refactor in the future we should make sure to do it over the whole build. For instance, it would've been nice if we did a global method rename for createEntry on CollectionProvider to CollectionAdapter.postEntry as it would've saved a bit time. :-)

Let me know your thoughts.
Cheers,
- Dan

James M Snell wrote:
Dan, let me know when you're done with the branch. I've implemented support for a Filter mechanism that is modeled after the Servlet Filter design. It allows a Provider to insert a chain of filters that are invoked by the AbderaServlet prior to invoking the Provider. The initial example I have is an OpenSearchFilter that is capable of serving up an OpenSearchDescription document and maps Target parameters to standard OpenSearch query parameters in the RequestContext.


Reply via email to