Geert Bevin wrote:
Also, since three years, no public APIs get committed anymore without Javadocs. Additionally, as you probably saw, each release contains extremely detailed release notes with examples that are afterwards aggregated in the wiki's cookbook. I think that there is no open-source project out there that does this as extensively. Stating that documentation is an afterthought thus feels really very harsh to me.

I'm glad to hear the first part of that, and yes, I did notice a lot of examples in the release notes, which are great. My harsh comment was based solely on the parts of the framework I've tried to use. The template system is quite well documented, enough so that I felt confident editing the Wiki to clarify the one thing I found I had to ask on the list about. And the simple blog movie, as I mentioned, is a very good introduction. It was therefore pretty jarring that the first thing I tried to do after finishing the tutorial (add database authentication) was essentially undocumented. As was the thing I tried to do after that (get rid of the URL decoration). And the thing after that (beefing up my model with some more complex database access).

It is entirely possible that I just happened to hit the worst-documented three parts of the framework all in a row.

A project with the momentum of Spring, with their amount of contributors and commercial companies behind it, is of course able to provide a lot more in terms of books and user guides. There's only so much that a small team of motivated developers can do for free in their spare time. However, if you do feel that some areas need to be improved quicker, you're always welcome to contribute to the effort and document your findings either in articles or Javadoc additions that you can send to me as patches.

I am happy to update the documenation in places where I feel like I have a solid enough understanding of the subject to make a useful contribution. And FYI, my comment about Spring was more about the Javadoc than the books and user guides (though those are nice too). Sounds like you have that problem under control for new code, but as a new RIFE user I have no way of knowing in advance what code is new and what code is old, so from my perspective the documentation is a random roll of the dice: will there or won't there be any documentation for what I want to do?

I'm working on a series of three short books for O'Reilly though, so soon there will be a source with more centralized information.

Looking forward to those!

You're right that database authentication isn't documented in detail and it really needs to receive some love since imho it's *the* area that is the most confusing to people. I think that you can find what you need here though:
http://thread.gmane.org/gmane.comp.java.rife.user/2767/focus=2767

I read that thread when it came by. It does not answer a single one of the questions I posed in my blog post. Which I'll repeat here with some clarifications so people don't have to go over there:

What table does the authentication system use for user data, and what are its columns? (In development mode, it's fine to have the framework auto-create tables. Not so in production; I want to control exactly where and how each table is created, make sure I understand all the integrity constraints, have administrative tools in place to manipulate the data in a safe way, etc.)

How does one add or remove a user? (The XML user data gets cached in memory, so if I just update or insert a database row in the users table, do I need to notify a cache manager? Is there a way to disable a user without deleting the row entirely?)

Does the user table have to be completely managed by the authentication system -- no touching it allowed -- or can it be a user-supplied table that has data other than login names and passwords? If so, how does one tell the code to use the alternate table, and how does one get at the additional data?

Is it possible to store session data somewhere other than a database, e.g. in a clustered cache?

Other posts on the mailing list cover this too. You don't really have to be following the list for a long time, since a simple search should reveal all the posts that are relevant to you.

I did search and I did not find the answers to my (relatively common, I believe) questions. But I guess a larger point is that if I have to search a mailing list archive on a regular basis, it's a sign of an inadequately-documented system. A mailing list is a very inefficient reference book -- even if what you want is there, you have to dig through a lot of noise to get an answer, especially if it's something that might match a variety of different sets of keywords.

I will pledge to do my part on this and update the Wiki with any answers I get from the list. I suppose if everyone, or even most people, did that, the need to search the mailing list would be much less.

One of the points of the query builders is that the order is not fixed at all. The real statements are only created when the SQL is obtained from the builder manually, or when it's executed. This also means that you can partial query builder objects that you prepare in one location of your code and complete elsewhere.

Great, that helps. Thanks. I have updated the "Generic query manager" Wiki page with that information and a couple examples of specifying multiple query conditions. Hopefully they're accurate; I'm kind of guessing at how the "whereAnd" method works. (My guess: it acts as a "where" if it's the first condition, or an "and" if it's not.)

I'd like to include an example of mixing "field()" and "where()" but I'm not really sure what field() does in the context of a restore query, whose fields are presumably already tied to the members of a particular class. So I guess that's another question: what is RestoreQuery.field() for?

I hope this information lets you climb out of the dip you're in and get back up to speed. Otherwise, feel free to mail the list with any additional questions you have, you'll see that a lot of people here are very helpful.

Indeed, it's the fact that I've seen most questions answered helpfully that's one of the most attractive things about RIFE.

Thanks for the reply!

-Steve
_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users

Reply via email to