Better yet, Cocoon already defines 4 "production roles", and add to that the "Cocoon Developer" we get;
1. Content 2. Style 3. Logic 4. Management/Admin 5. Cocoon Developer Note that some docs can always be linked from more than one section. Same thing for a new FAQ section, where there could be multiple "target-role" for each Q and the generated FAQ would compile according to your "role-entrypoint". Niclas On Tuesday 28 January 2003 06:05, Robert Simmons wrote: > In my opinion cocoon needs to start architecting itself towards four types > of cocoon consumers: > > Presentation Developer: > This person uses editors to define style sheets for transforming data into > presentation layers. This user should not be concerned with the extension > mechanism of cocoon. In a real company, this user would be a graphic > designer. Should this user need some special kind of transformation, they > would ask the next a Content Developer. > > Administrator: > This person is responsible for maintaining the health of the cocoon > instance. This user would typically be a network engineer at a company. > They should have functionality to track throughput and performance and get > an idea of the kind of volume being handled by cocoon via some statistics > pages. > > Content Developer: > Data is the prime responsibility for the content developer. He builds data > engines using custom generator classes, static XML and various other > mechanisms of cocoon. This user is served by a programmer in a company. The > developer Is concerned only with the interface to cocoon and not with any > of the internals. He doesn't need to know why things work, he just needs to > know that if he implements interface x and generates content via sax > events, then cocoon magically spits out his XML. > > Cocoon Developer: > This is a consumer that is concerned with altering the cocoon distribution. > This person has varying levels of knowledge of the internals of cocoon and > seeks to contribute to the general product via commits to CVS. > > ----------------------------------- > > To accomplish this we need, IMHO, to implement a few things in cocoon. The > suggestions are annotated with the target roles indicated below their > title. it is for these target roles that we do the task. > > Document the API: > For (Cocoon Developer, Content Developer) > Developers of cocoon should go through the entire API and document it. > Using a tool like Jalopy, all of the source code can be formatted to > standards set in the jalopy options. For each entry that is not documented, > a todo list can be generated and worked through to remove all of the todo > tag entries. Cocoon can be used to parse the javadoc files and, using XSLT, > extract all of the todo entries. This would give the consumers the ability > to use the API more effectively. > > Abstract Out References to third party libraries: > (Cocoon Developer) > Anytime the Cocoon Developer needs to build a new custom extension to > cocoon, he should have to only import the cocoon.jar file into his > classpath to compile. All of these interfaces will then be documented in > one API document set for easy consumption. This would be accomplished by > identifying all entry points and facading them with interfaces. So the > avalon request object would instead be org.apache.cocoon.api.Request. The > user deals only with the interfaces and not with anything internal. > > Convert logging to use Log4j: > (Administrator, Content Developer, Cocoon Developer) > This would involve converting Logikit logging to Log4j logging mechanisms. > Although pervasive throughout the code, the changes are mostly a bunch of > search and replace activities. It can hardly be denied that Log4j has won > the Java logging market. There are already a number of professional tools > used for viewing Log4j output. Such tools as those used in consuming JMS > logging events are used by network engineers all over to monitor health of > the system. There is little point trying to fight the tide. Making Cocoon > use Log4j would have the advantage of allowing these network admins to > configure single Log4j property files for their whole platform. > > Build documentation specifically targeted at each user role: > (all) > This documentation should include getting started guides for all four types > of users and varying levels of tutorials. For instance Presentation > Developers might get a tutorial on XSL and XML. Content Developers would > get current tutorials such as making your own generator and introduction to > forms in XSL. In addition, other tutorials such as the sitemap tutorial > would be common to all roles. This documentation should be sectioned > appropriate to the roles. > > Create a distribution stripped of every example except a single XML-XSL > transform welcome page for use as a starter point. > (Content Developer) > > Change the Libs format: > (Content Developer) > The libs should all be packaged into one big jar containing each of the > other library jars. This library would contain a classpath for each of the > entries in the big jar file. This would hide internals from the cocoon > developers. > > A new jar called cocoon-ext.jar. > (Content Developer) > This jar would contain only the needed classes for compiling extensions > (such as generators) to cocoon. It would be for users to mount in their > development IDEs instead of having to mount the entire cocoon-all.jar. In > the > distribution, a new directory called dev-libs would be created and this jar > would be placed in there. > > All properties and xconf files that the user doesn't need to routinely edit > would be packed into the cocoon-all.jar. > (Content Developer) > The code loading these files would be adapted so that if a user chooses to > provide his own xconf files (at his own risk), he can do so. Perhaps the > code looks for custom-cocoon.xconf in the classpath and if it doesn't find > it, then it loads the default one in the cocoon-all.jar. > > Finalize a Sitemap Schema: > (Content Developer, Presentation Developer) > Being able to validate against the schema would be a big help to these two > roles. > > Comprehensive reference manual: > (all) > This would contain things such as a dictionary of common terms and a list > of the generators and what each does. It would be brief reference material > used to help the cocoon consumers. All properties for the cocoon.xconf > files and various other files would be enumerated and so on. > > > > > ----- Original Message ----- > From: "SAXESS - Hussayn Dabbous" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Monday, January 27, 2003 8:52 PM > Subject: Re: proposal: "The Newbies Competence Center" > > > From the ongoing discussion we (the users) stated, that : > > > > * currently the docs do not really separate between > > cocoon-users and cocoon-developers and cocoon doesn't > > imply an obvious separation. > > > > * the documentation seems to be more developer centric, less > > user centric. > > > > * especially the newbies often get into trouble, because > > they feel, they have to learn the concepts in depths before > > they can get someth8ing out of cocoon. > > > > therefore we started this "newbies competence center" approach. > > i personnaly whish, that eventually the whole cocoon documentation > > will be better separated into developers issues and users issues, > > where my definition (biased from the discussions) is a bit fuzzy: > > > > user: *uses* the given infrastructure as is > > developer: *creates* his own add ons to given infrastructure > > > > I get troubles when it comes to xsp programming, which clearly > > sits between the chairs. But even there i see a bunch of prepacked > > ready to use logicsheets ready made for the "users" and > > the self made extra logicsheets from the developers... > > maybe this is a little simplistic, but it may hold as a first > > approach towards separating user concerns from developer concerns. > > > > another argument was: the user does not deal with internals nor with > > philosophy under the hood (like avalon framework, etc.) The developer > > in contrary does. But even here there seem to be at least two kinds > > of developers at work: those who do "simple" add ons (whatever > > simple means) i name them "application programmers" (they won't > > dive deep into avalon) and those who create complex additions to the > > cocoon base, who may be labeled as system programmers. > > > > all of this is not so easy and should be separated out more clearly > > in the next steps. I am pretty shure, if we keep with KISS, we should > > come out at least with a usable beginners doc though ;-) > > > > regards, hussayn > > > > Tony Collen wrote: > > > Remember, the docs are for the users, and unfortunately, the developers > > > might have a different idea about how the information "should" be > > > categorized. Or maybe our problem is making the distinction between > > > "users" and "developers" ... I would guess that eventually, most users > > > become developers, so then, it's just a matter of "beginning user" vs. > > > "power user", and so on. > > > > -- > > Dr. Hussayn Dabbous > > SAXESS Software Design GmbH > > Neuenhöfer Allee 125 > > 50935 Köln > > Telefon: +49-221-56011-0 > > Fax: +49-221-56011-20 > > E-Mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > > Please check that your question has not already been answered in the > > FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > > > > To unsubscribe, e-mail: <[EMAIL PROTECTED]> > > For additional commands, e-mail: <[EMAIL PROTECTED]> > > --------------------------------------------------------------------- > Please check that your question has not already been answered in the > FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > > To unsubscribe, e-mail: <[EMAIL PROTECTED]> > For additional commands, e-mail: <[EMAIL PROTECTED]> --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>