Re: Public/Private classification (was Re: javadocs navigation)

2005-10-15 Thread Reinhard Poetz

Stefano Mazzocchi wrote:

Reinhard Poetz wrote:


Stefano Mazzocchi wrote:


Daniel Fagerstrom wrote:




[...]


Daniel,

let me repeat: I don't care about precision and elegance and 
completeness, I care about usability.


I am thinking at flow users that want to use java components to do 
their stuff. They should *NOT* care about org.apache.cocoon.xml.XMLPipe.




Not all Cocoon users are flow users only ...



Reinhard, how many cocoon users have ever implemented 
org.apache.cocoon.xml.XMLPipe?


My point is not about flow, is about brevity over completeness.


Stefano,

TBH I have no strong opinion whether XMLPipe should be part of the public 
_documentation_.  Of course it is part of the _public API_ because otherwise 
you're not able to implement e.g. a transformer, but I'm sure that you know this 
as you're the author of this interface ;-)


I only doubt that the proposed way of how to find the classes and interfaces, 
that should become part of the public documentation, will lead to success. Do 
you guys really think that many people will start to evaluate ~670 classes and 
interfaces? And if yes, Daniel, Vadim you and me can't agree whether the 
interface XMLPipe is public or not. So I'm not really optimistice about the 
outcome as we have to discuss the other 669 classes and interfaces too.


I'm just with Daniel that we should talk about the principles of what is public 
and private first.
After agreeing on them one person can move the public interfaces and classes 
into a seperate directoy and then we can create a cocoon-api.jar and can create 
javadocs out of it.


If you or others think that the wiki way of tagging classes is more successful 
(and faster), please go for it. Believe me, it's not my intention to block this, 
especially as I don't have the time to work on the alternative within the next 
3-4 weeks.


--
Reinhard Pötz   Independent Consultant, Trainer  (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc



Re: Public/Private classification (was Re: javadocs navigation)

2005-10-15 Thread Joerg Heinicke

On 15.10.2005 10:38, Reinhard Poetz wrote:

I only doubt that the proposed way of how to find the classes and 
interfaces, that should become part of the public documentation, will 
lead to success. Do you guys really think that many people will start to 
evaluate ~670 classes and interfaces? And if yes, Daniel, Vadim you and 
me can't agree whether the interface XMLPipe is public or not. So I'm 
not really optimistice about the outcome as we have to discuss the other 
669 classes and interfaces too.


I'm just with Daniel that we should talk about the principles of what is 
public and private first.
After agreeing on them one person can move the public interfaces and 
classes into a seperate directoy and then we can create a cocoon-api.jar 
and can create javadocs out of it.


Amen.

Jörg


Re: Public/Private classification (was Re: javadocs navigation)

2005-10-15 Thread Stefano Mazzocchi

Vadim Gritsenko wrote:

Stefano Mazzocchi wrote:


Reinhard Poetz wrote:

Reinhard, how many cocoon users have ever implemented 
org.apache.cocoon.xml.XMLPipe?



All users who implemented at least one Transformer.

  public interface Transformer extends XMLPipe, SitemapModelComponent {
  }

If you are implementing transformer for a first time, you have to have 
javadocs (or source code (or IDE with reflection)) to implement it.


I don't think you guys understand what I'm saying.

For each user that needs to write a transformer, there are 20 users that 
don't, but if they go all to the same place, only the user that is able 
to write transformers will stick around.


which is *exactly* what's happening.

So, we can keep the same attitude, or change it.

I'm for changing it.

--
Stefano.



Re: Public/Private classification (was Re: javadocs navigation)

2005-10-15 Thread Stefano Mazzocchi

Reinhard Poetz wrote:

Stefano Mazzocchi wrote:


Reinhard Poetz wrote:


Stefano Mazzocchi wrote:


Daniel Fagerstrom wrote:





[...]


Daniel,

let me repeat: I don't care about precision and elegance and 
completeness, I care about usability.


I am thinking at flow users that want to use java components to do 
their stuff. They should *NOT* care about 
org.apache.cocoon.xml.XMLPipe.




Not all Cocoon users are flow users only ...




Reinhard, how many cocoon users have ever implemented 
org.apache.cocoon.xml.XMLPipe?


My point is not about flow, is about brevity over completeness.



Stefano,

TBH I have no strong opinion whether XMLPipe should be part of the 
public _documentation_.  Of course it is part of the _public API_ 
because otherwise you're not able to implement e.g. a transformer, but 
I'm sure that you know this as you're the author of this interface ;-)


I only doubt that the proposed way of how to find the classes and 
interfaces, that should become part of the public documentation, will 
lead to success. Do you guys really think that many people will start to 
evaluate ~670 classes and interfaces? And if yes, Daniel, Vadim you and 
me can't agree whether the interface XMLPipe is public or not. So I'm 
not really optimistice about the outcome as we have to discuss the other 
669 classes and interfaces too.


I'm just with Daniel that we should talk about the principles of what is 
public and private first.
After agreeing on them one person can move the public interfaces and 
classes into a seperate directoy and then we can create a cocoon-api.jar 
and can create javadocs out of it.


If you or others think that the wiki way of tagging classes is more 
successful (and faster), please go for it. Believe me, it's not my 
intention to block this, especially as I don't have the time to work on 
the alternative within the next 3-4 weeks.


Boy, this is getting frustrating.

I don't give a proverbial f*k on how we do it the fact is that there 
are many levels of public API and we are not acknoledging that, 
nowhere something like this can be found.


In the past, we wanted FOM to be the only interface between flowscript 
and the rest of the system but given how many services are embedded in 
components and how many things were never added to FOM but just expected 
to be discovered out of getComponent(), which means that you need to 
know the entire cocoon internals to be able to write a simple 
flowscript, which is totally ridiculous.


You want principles? here they are:

 1) script-oriented people, those who don't know java and don't care, 
those looking for RAD, those coming from the client or from the XML 
world, should have a reduced API which includes FOM + useful components 
+ environment API and no cocoon internals.


 2) for power users, willing to extend cocoon, the cocoon internal APIs 
(pipelines, caching, input modules, etc..)


 3) for cocoon devepers, everything but at least packaged by block.

This is what I want.

I don't care if we do it by hand or we do it by javadoc or by other means.

I don't care if we use wikis or post-its to find out which interface 
goes in which category(s), or if we use tags or even if we use embedded 
RDF in the javadoc comments for it.


All I want is to help our users stick around... because honestly, I find 
myself in the very uncomfortable position of suggesting people *NOT*TO* 
use cocoon, because is such a horrible climb to get to that comfortable 
plateau of productivity and this is honestly not acceptable today.


--
Stefano.



Re: Public/Private classification (was Re: javadocs navigation)

2005-10-14 Thread Daniel Fagerstrom

Stefano Mazzocchi wrote:
...


Daniel,

let me repeat: I don't care about precision and elegance and 
completeness, I care about usability.


That is great Stefano, you find the the 673 classes and interfaces that 
need to be marked public or private, with usability in mind here: 
http://wiki.apache.org/cocoon/PublicAPIClasses. Go ahead and mark them 
if you haven't allready.


I am thinking at flow users that want to use java components to do 
their stuff.


I read your previous mail:

Here's my principle: since I write all my business logic in flow, I 
want to know which ones are the things that I can expect to call from 
flow.


Although Cocoon doesn't have the marked share that we would wish, we 
still have more users than you to care about;) Some of the users write 
custom sitemap components as an example, I think they need good JavaDoc 
as well.


Anyway, to get anywhere you need to be a little bit more concrete about 
what you think should be part of the public API for flow users. Classes 
mentioned in http://cocoon.apache.org/2.1/userdocs/flow/api.html 
obviously need to be part of the API: Request, Response, Session, 
Context, Logger, WebContinuation. PipelineUtil and as you mentioned 
SourceUtil and SourceResolver. Anything more?



They should *NOT* care about org.apache.cocoon.xml.XMLPipe.


In some cases users don't need to care about what classes or interfaces 
an API class extends or implements. For such cases we need to propagate 
down all documentation from the parent classes.


The other kind of dependency I looked at was what interfaces and classes 
the methods of the public API returns and have as arguments. I would 
find it rather frustrating to implement an method in an interface 
without having documentation of the types of the parameters, so I don't 
think that completeness is an unreasonable requirement. But maybe I'm 
the only one, and in that case we don't need to care as I read the 
source anyway ;)


Also I think it is quite good idea to do dependency analysis of our 
interfaces (although I need a better tool), as it help us to find 
dependencies that shouldn't be there. Most of the dependencies I found 
seemed rather reasonable, my main question is about ProcessingExceptions 
dependency on various classes and interfaces in 
org.apache.cocoon.util.location, there seem to be a lot of 
interdependencies in that package. But maybe I got some dependencies 
from the tool that wasn't on the acual API level. I haven't anlyzed what 
is going on in detail.


/Daniel



Re: Public/Private classification (was Re: javadocs navigation)

2005-10-14 Thread Vadim Gritsenko

Stefano Mazzocchi wrote:

Daniel Fagerstrom wrote:


Daniel Fagerstrom wrote:

To illustrate what I meant I tried to follow the dependencies for the 
sitemap component interfaces.



Cocoon API
==


So what is the Cocoon API? All interfaces used in 
cocoon-core-sitemap.xconf are part of the Cocoon API: Generator, 
Transformer, Serializer, Reader, Matcher, Selector, Action, 
ProcessingPipeline. Then the interfaces refered to in the Cocoon API 
must be part of the API as well by transitive closure. So here we get 
various exceptions, SitemapModelComponent, XMLPipe, XMLProducer and 
much more. The ObjectModelHelper with dependencies is also part of 
the API.


Starting with:

org.apache.cocoon.acting.Action
org.apache.cocoon.generation.Generator
org.apache.cocoon.matching.Matcher
org.apache.cocoon.reading.Reader
org.apache.cocoon.selection.Selector
org.apache.cocoon.serialization.Serializer
org.apache.cocoon.transformation.Transformer

(I removed the ProcessingPipeline as it dependencies seem to explode 
to all kinds of internal classes, we need to polish that interface if 
it should be considered public)


These interfaces depends on:

org.apache.avalon.framework.parameters.Parameters
org.apache.cocoon.ProcessingException
org.apache.cocoon.environment.Redirector
org.apache.cocoon.environment.SourceResolver
org.apache.cocoon.sitemap.SitemapModelComponent
org.apache.cocoon.sitemap.SitemapOutputComponent
org.apache.cocoon.sitemap.PatternException
org.apache.cocoon.xml.XMLConsumer
org.apache.cocoon.xml.XMLPipe
org.apache.cocoon.xml.XMLProducer

which depends on (skipping the avalon dependencies)

org.apache.avalon.framework.CascadingException
org.apache.cocoon.util.location.LocatedException
(org.apache.cocoon.util.location.LocatedRuntimeException)
org.apache.cocoon.util.location.Location
org.apache.cocoon.util.location.MultiLocatable

and again

org.apache.cocoon.util.location.Locatable
org.apache.cocoon.util.location.LocatableException
org.apache.cocoon.util.location.LocationImpl
org.apache.cocoon.util.location.LocationUtils
org.apache.commons.lang.exception.NestableException
org.apache.commons.lang.exception.ExceptionUtils

===

The object model helper must also be considered to be part of the 
Cocoon API, there we get the dependencies:


org.apache.cocoon.environment.ObjectModelHelper

--

org.apache.cocoon.environment.Context
org.apache.cocoon.environment.Request
org.apache.cocoon.environment.Response

--

org.apache.cocoon.environment.Cookie
org.apache.cocoon.environment.Session

===

This should be a complete list of the public sitemap component API (I 
did the dependency analysis semi automatically with 
http://depfind.sourceforge.net/, so I could have done some mistakes).


It's not complete - at least InputModule interface is missing, may be something 
else. But it is a good start.



A similar list for the public component API, starting from 
cocoon-core.xconf would also be a good idea. But I would need a better 
tool than depfind for that excercise, any suggestions?


I am not sure everything declared in the cocoon.xconf is public API, although 
most of the stuff is, such as xml parser, xslt processor, runnable manager, etc.



I'm not suggesting that we can find out the Cocoon API automatically. 
But given that we want a particular set of interfaces in the public 
API and JavaDoc, I think it would be rather strange if we didn't made 
all the o.a.c interfaces and classes that these interfaces depends on 
also part of the public API.



Daniel,

let me repeat: I don't care about precision and elegance and 
completeness, I care about usability.


I am thinking at flow users that want to use java components to do their 
stuff. They should *NOT* care about org.apache.cocoon.xml.XMLPipe.


Users that write *own* components *do* care about XMLPipe.

Vadim


Re: Public/Private classification (was Re: javadocs navigation)

2005-10-14 Thread Stefano Mazzocchi

Reinhard Poetz wrote:

Stefano Mazzocchi wrote:


Daniel Fagerstrom wrote:



[...]


Daniel,

let me repeat: I don't care about precision and elegance and 
completeness, I care about usability.


I am thinking at flow users that want to use java components to do 
their stuff. They should *NOT* care about org.apache.cocoon.xml.XMLPipe.




Not all Cocoon users are flow users only ...


Reinhard, how many cocoon users have ever implemented 
org.apache.cocoon.xml.XMLPipe?


My point is not about flow, is about brevity over completeness.

--
Stefano.



Re: Public/Private classification (was Re: javadocs navigation)

2005-10-14 Thread Vadim Gritsenko

Stefano Mazzocchi wrote:

Reinhard Poetz wrote:

Reinhard, how many cocoon users have ever implemented 
org.apache.cocoon.xml.XMLPipe?


All users who implemented at least one Transformer.

  public interface Transformer extends XMLPipe, SitemapModelComponent {
  }

If you are implementing transformer for a first time, you have to have javadocs 
(or source code (or IDE with reflection)) to implement it.


Vadim


Re: Public/Private classification (was Re: javadocs navigation)

2005-10-13 Thread Daniel Fagerstrom

Upayavira wrote:


So, I have created a wiki page:

http://wiki.apache.org/cocoon/PublicAPIClasses

Please go there and mark classes public/private as necessary. As it 
says at the top of that page, if you disagree with someone, change it 
to dispute or D for short. Then it becomes an opportunity for some 
healthy argument!


Wow! that's a lot of classes. While I aplaud the initiative, 673 classes 
are huge amount to classify. I would suggest that we start discussing 
principles first a bit.


IMO we need to find two set of interfaces/classes: the API of Cocoon, 
and the set of classes (components) that an application programmer need 
JavaDoc for.


I guess this thread is mainly about the second set, but I find it hard 
to adress whoyhout discussing the first one.


Cocoon API
==

These are the interfaces that we intend an application programmer to 
implement while building Cocoon applications. Our contract with the 
user is that we do our best to keep these interfaces. And when that 
would be a to large hinder for further development of Cocoon, we follow 
standard practices for deprecation or interface modification.


We should IMO put the Cocoon API in one or possibly several pure 
interface jars (bundles).


So what is the Cocoon API? All interfaces used in 
cocoon-core-sitemap.xconf are part of the Cocoon API: Generator, 
Transformer, Serializer, Reader, Matcher, Selector, Action, 
ProcessingPipeline. Then the interfaces refered to in the Cocoon API 
must be part of the API as well by transitive closure. So here we get 
various exceptions, SitemapModelComponent, XMLPipe, XMLProducer and much 
more. The ObjectModelHelper with dependencies is also part of the API.


Then we can continue to take a look at cocoon-core.xconf. Most of the 
interfaces used here are probably part of the Cocoon API: InputModule, 
OutputModule, Source (with extending interfaces: WritableSource and 
maybe some more), to mention some obvious. For some of the interfaces 
here it is less clear if they are part of the Cocoon API, as an example 
are we going to support the use of Processor? To connect to a current 
discussion.


Maybe there are part of the Cocoon API that not is used for components 
and sitemap components? We obviously support Servlet e.g.


Public API Classes


This is what a user needs to build own components, use components from 
flowscript or using Cocoon from other applications or environments.


Here we have all (or most) components defined in 
cocoon-core-sitemap.xconf and cocoon-core.xconf. The CocoonBean and 
CocoonServlet would also be part of this. Some utility classes from util 
and xml and abstract classes that helps implementing different component 
classes could also be part of the public API classes.


--- o0o ---

So if you think that the above is a good idea, we could work 
incrementally: Start with defining the Cocoon API: one list of sitemap 
component interfaces, one with component interfaces and one where people 
could add other intefaces that should be part of the Cocoon API. Then we 
could mark what should be public and private in these lists.


We also need to have a list with the transitive closure of all 
interfaces and classes that the previous lists depends on (hopefully 
some IDE or other tool can generate that list). As the dependencies also 
need to be part of the Cocoon API. This will also give as an indication 
if there are parts of Cocoon that would need to be refactored to give 
cleaner and more focused interfaces.


When we have agreed about what is the Cocoon API, I would be happy if we 
could move it to an own jar.


After or in parallell with finding the Cocoon API, we could work on the 
public API classes, following similar principles. Listing all 
components from our configuration for marking them public or private and 
also utility classes. And then a list of the transitive closure of the 
dependencies. Also the public API classes should go to one or several 
component bundles.


WDYT?

/Daniel



Re: Public/Private classification (was Re: javadocs navigation)

2005-10-13 Thread Stefano Mazzocchi

Daniel Fagerstrom wrote:

Upayavira wrote:


So, I have created a wiki page:

http://wiki.apache.org/cocoon/PublicAPIClasses

Please go there and mark classes public/private as necessary. As it 
says at the top of that page, if you disagree with someone, change it 
to dispute or D for short. Then it becomes an opportunity for some 
healthy argument!



Wow! that's a lot of classes. While I aplaud the initiative, 673 classes 
are huge amount to classify. I would suggest that we start discussing 
principles first a bit.


Here's my principle: since I write all my business logic in flow, I want 
to know which ones are the things that I can expect to call from flow.


Documenting FOM is one thing, but then we have a bunch of other things 
(like SourceUtil and excalibur resolver etc) that I use all the time.


So, my rationale is not to document XMLPipe (since I'll never use it or 
implement it in flow) but to have an idea, from the cocoon user point of 
view, of where are the hooks.


So, there are 4 levels:

 1) FOM (the javascript objects available to flow)
 2) the static java utils + avalon components
 3) the cocoon interfaces
 4) the cocoon classes

we document #1 (badly, if you ask me, it's a pain to find) and the rest 
is one huge bundled javadoc and our class classification by package does 
*NOT* induce itself to the classification above (maybe #3 and #4, given 
that we use impl to indicate what implements an interface, and we use 
.components even if not all of those are meant to be used in flow)


If we want to appeal to the users, we need to tell them loud and clear 
what are the hooks they can use. Otherwise, it feels like flying without 
a net.


Some people here want to move to javaflow to have eclipse do the work 
for them, I think we have to do something anyway.


--
Stefano.



Re: Public/Private classification (was Re: javadocs navigation)

2005-10-13 Thread Daniel Fagerstrom

Daniel Fagerstrom wrote:
...

To illustrate what I meant I tried to follow the dependencies for the 
sitemap component interfaces.



Cocoon API
==


...

So what is the Cocoon API? All interfaces used in 
cocoon-core-sitemap.xconf are part of the Cocoon API: Generator, 
Transformer, Serializer, Reader, Matcher, Selector, Action, 
ProcessingPipeline. Then the interfaces refered to in the Cocoon API 
must be part of the API as well by transitive closure. So here we get 
various exceptions, SitemapModelComponent, XMLPipe, XMLProducer and 
much more. The ObjectModelHelper with dependencies is also part of the 
API.



Starting with:

org.apache.cocoon.acting.Action
org.apache.cocoon.generation.Generator
org.apache.cocoon.matching.Matcher
org.apache.cocoon.reading.Reader
org.apache.cocoon.selection.Selector
org.apache.cocoon.serialization.Serializer
org.apache.cocoon.transformation.Transformer

(I removed the ProcessingPipeline as it dependencies seem to explode to 
all kinds of internal classes, we need to polish that interface if it 
should be considered public)


These interfaces depends on:

org.apache.avalon.framework.parameters.Parameters
org.apache.cocoon.ProcessingException
org.apache.cocoon.environment.Redirector
org.apache.cocoon.environment.SourceResolver
org.apache.cocoon.sitemap.SitemapModelComponent
org.apache.cocoon.sitemap.SitemapOutputComponent
org.apache.cocoon.sitemap.PatternException
org.apache.cocoon.xml.XMLConsumer
org.apache.cocoon.xml.XMLPipe
org.apache.cocoon.xml.XMLProducer

which depends on (skipping the avalon dependencies)

org.apache.avalon.framework.CascadingException
org.apache.cocoon.util.location.LocatedException
(org.apache.cocoon.util.location.LocatedRuntimeException)
org.apache.cocoon.util.location.Location
org.apache.cocoon.util.location.MultiLocatable

and again

org.apache.cocoon.util.location.Locatable
org.apache.cocoon.util.location.LocatableException
org.apache.cocoon.util.location.LocationImpl
org.apache.cocoon.util.location.LocationUtils
org.apache.commons.lang.exception.NestableException
org.apache.commons.lang.exception.ExceptionUtils

===

The object model helper must also be considered to be part of the Cocoon 
API, there we get the dependencies:


org.apache.cocoon.environment.ObjectModelHelper

--

org.apache.cocoon.environment.Context
org.apache.cocoon.environment.Request
org.apache.cocoon.environment.Response

--

org.apache.cocoon.environment.Cookie
org.apache.cocoon.environment.Session

===

This should be a complete list of the public sitemap component API (I 
did the dependency analysis semi automatically with 
http://depfind.sourceforge.net/, so I could have done some mistakes).


===

A similar list for the public component API, starting from 
cocoon-core.xconf would also be a good idea. But I would need a better 
tool than depfind for that excercise, any suggestions?


===

I'm not suggesting that we can find out the Cocoon API automatically. 
But given that we want a particular set of interfaces in the public API 
and JavaDoc, I think it would be rather strange if we didn't made all 
the o.a.c interfaces and classes that these interfaces depends on also 
part of the public API.


/Daniel



Re: Public/Private classification (was Re: javadocs navigation)

2005-10-13 Thread Stefano Mazzocchi

Daniel Fagerstrom wrote:

Daniel Fagerstrom wrote:
...

To illustrate what I meant I tried to follow the dependencies for the 
sitemap component interfaces.



Cocoon API
==



...

So what is the Cocoon API? All interfaces used in 
cocoon-core-sitemap.xconf are part of the Cocoon API: Generator, 
Transformer, Serializer, Reader, Matcher, Selector, Action, 
ProcessingPipeline. Then the interfaces refered to in the Cocoon API 
must be part of the API as well by transitive closure. So here we get 
various exceptions, SitemapModelComponent, XMLPipe, XMLProducer and 
much more. The ObjectModelHelper with dependencies is also part of the 
API.




Starting with:

org.apache.cocoon.acting.Action
org.apache.cocoon.generation.Generator
org.apache.cocoon.matching.Matcher
org.apache.cocoon.reading.Reader
org.apache.cocoon.selection.Selector
org.apache.cocoon.serialization.Serializer
org.apache.cocoon.transformation.Transformer

(I removed the ProcessingPipeline as it dependencies seem to explode to 
all kinds of internal classes, we need to polish that interface if it 
should be considered public)


These interfaces depends on:

org.apache.avalon.framework.parameters.Parameters
org.apache.cocoon.ProcessingException
org.apache.cocoon.environment.Redirector
org.apache.cocoon.environment.SourceResolver
org.apache.cocoon.sitemap.SitemapModelComponent
org.apache.cocoon.sitemap.SitemapOutputComponent
org.apache.cocoon.sitemap.PatternException
org.apache.cocoon.xml.XMLConsumer
org.apache.cocoon.xml.XMLPipe
org.apache.cocoon.xml.XMLProducer

which depends on (skipping the avalon dependencies)

org.apache.avalon.framework.CascadingException
org.apache.cocoon.util.location.LocatedException
(org.apache.cocoon.util.location.LocatedRuntimeException)
org.apache.cocoon.util.location.Location
org.apache.cocoon.util.location.MultiLocatable

and again

org.apache.cocoon.util.location.Locatable
org.apache.cocoon.util.location.LocatableException
org.apache.cocoon.util.location.LocationImpl
org.apache.cocoon.util.location.LocationUtils
org.apache.commons.lang.exception.NestableException
org.apache.commons.lang.exception.ExceptionUtils

===

The object model helper must also be considered to be part of the Cocoon 
API, there we get the dependencies:


org.apache.cocoon.environment.ObjectModelHelper

--

org.apache.cocoon.environment.Context
org.apache.cocoon.environment.Request
org.apache.cocoon.environment.Response

--

org.apache.cocoon.environment.Cookie
org.apache.cocoon.environment.Session

===

This should be a complete list of the public sitemap component API (I 
did the dependency analysis semi automatically with 
http://depfind.sourceforge.net/, so I could have done some mistakes).


===

A similar list for the public component API, starting from 
cocoon-core.xconf would also be a good idea. But I would need a better 
tool than depfind for that excercise, any suggestions?


===

I'm not suggesting that we can find out the Cocoon API automatically. 
But given that we want a particular set of interfaces in the public API 
and JavaDoc, I think it would be rather strange if we didn't made all 
the o.a.c interfaces and classes that these interfaces depends on also 
part of the public API.


Daniel,

let me repeat: I don't care about precision and elegance and 
completeness, I care about usability.


I am thinking at flow users that want to use java components to do their 
stuff. They should *NOT* care about org.apache.cocoon.xml.XMLPipe.


--
Stefano.



Re: Public/Private classification (was Re: javadocs navigation)

2005-10-13 Thread Reinhard Poetz

Stefano Mazzocchi wrote:

Daniel Fagerstrom wrote:


[...]


Daniel,

let me repeat: I don't care about precision and elegance and 
completeness, I care about usability.


I am thinking at flow users that want to use java components to do their 
stuff. They should *NOT* care about org.apache.cocoon.xml.XMLPipe.




Not all Cocoon users are flow users only ...

--
Reinhard Pötz   Independent Consultant, Trainer  (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc



RE: javadocs navigation (was: [RT] Is Cocoon Obsolete?)

2005-10-12 Thread Max Pfingsthorn

...
 I was thinking about that recently - does anyone know a tool for 
 tag-based navigation of javadocs?
 
 A better *navigation* of the javadocs, like being able to see all 
 classes which have the sitemap generator tags, would help a lot.

Can't you use the refdoc stuff for that? If it's not ready, which I guess it 
isn't from the STATUS at 
http://svn.apache.org/repos/asf/cocoon/gsoc/rgraham/refdoc/STATUS, I could take 
it from where Robert left it...

WDYT?

max


Re: javadocs navigation (was: [RT] Is Cocoon Obsolete?)

2005-10-12 Thread Torsten Curdt


On 12.10.2005, at 08:20, Bertrand Delacretaz wrote:


Le 12 oct. 05, à 05:16, Stefano Mazzocchi a écrit :

...I think a better, leaner, cleaner javadoc would go a *LNG*  
way to make things easier...




I was thinking about that recently - does anyone know a tool for  
tag-based navigation of javadocs?


A better *navigation* of the javadocs, like being able to see all  
classes which have the sitemap generator tags, would help a lot.


Hm... if you cannot navigate with the current javadocs navigation  
it's a clear sign that the codebase needs some refactoring - not a  
better navigation IMHO.


Although something like that *would* be sexy ;)

cheers
--
Torsten



PGP.sig
Description: This is a digitally signed message part


Re: javadocs navigation (was: [RT] Is Cocoon Obsolete?)

2005-10-12 Thread Bertrand Delacretaz

Le 12 oct. 05, à 09:32, Max Pfingsthorn a écrit :
...Can't you use the refdoc stuff for that? If it's not ready, which I 
guess it isn't from the STATUS at 
http://svn.apache.org/repos/asf/cocoon/gsoc/rgraham/refdoc/STATUS, I 
could take it from where Robert left it...


It's not far from being usable I think, what it needs most is a good 
example of what it can bring.


I haven't had time to have a deeper look in my Bursty Copious Free Time 
yet, but if you want to have a look you're very welcome, I'll do my 
best to help!


-Bertrand



Re: javadocs navigation

2005-10-12 Thread Sylvain Wallez

Bertrand Delacretaz wrote:


Le 12 oct. 05, à 05:16, Stefano Mazzocchi a écrit :

...I think a better, leaner, cleaner javadoc would go a *LNG* way 
to make things easier...



I was thinking about that recently - does anyone know a tool for 
tag-based navigation of javadocs?


A better *navigation* of the javadocs, like being able to see all 
classes which have the sitemap generator tags, would help a lot.



Or more simpler, and we already talked about this, what about tagging 
the source files themselves to be able to produce javadocs of a 
restricted set of classes, i.e. those that are considered public API and 
that people can safely rely on.


Sylvain

--
Sylvain WallezAnyware Technologies
http://people.apache.org/~sylvain http://www.anyware-tech.com
Apache Software Foundation Member Research  Technology Director



Re: javadocs navigation

2005-10-12 Thread Carsten Ziegeler
Sylvain Wallez wrote:
 
 Or more simpler, and we already talked about this, what about tagging 
 the source files themselves to be able to produce javadocs of a 
 restricted set of classes, i.e. those that are considered public API and 
 that people can safely rely on.
 
And now, it's time for Guido to show up again - as he proposed this a
long time ago and I think he already implemented something. But I might
be wrong...

Carsten

-- 
Carsten Ziegeler - Open Source Group, SN AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/


Re: javadocs navigation

2005-10-12 Thread Stefano Mazzocchi

Bertrand Delacretaz wrote:

Le 12 oct. 05, à 05:16, Stefano Mazzocchi a écrit :

...I think a better, leaner, cleaner javadoc would go a *LNG* way 
to make things easier...



I was thinking about that recently - does anyone know a tool for 
tag-based navigation of javadocs?


A better *navigation* of the javadocs, like being able to see all 
classes which have the sitemap generator tags, would help a lot.


All right, here's another thing that could help this project: do it 
hacky now instead of doing it cool later.


I'm partially responsible for leading the community to think that hacks 
don't work (and they don't, in the long run) but in the short run, 
something as small as having another javadoc, built with just a subset 
of the code, would be good enough...


We have been working on ways to improve stuff forever, but everytime 
somebody comes up with an idea, somebody comes up with another idea, 
more elegant, more general, more scalable and harder to implement... and 
it creates a stall: either somebody implements the more elegant idea or 
nothing happens at all.


I think this is our single most important problem in helping our users: 
we care too much about them and we want to give them the best experience 
we can think of.


We need to start caring less about that.

--
Stefano.



Re: javadocs navigation

2005-10-12 Thread Stefano Mazzocchi

Sylvain Wallez wrote:

Bertrand Delacretaz wrote:


Le 12 oct. 05, à 05:16, Stefano Mazzocchi a écrit :

...I think a better, leaner, cleaner javadoc would go a *LNG* way 
to make things easier...




I was thinking about that recently - does anyone know a tool for 
tag-based navigation of javadocs?


A better *navigation* of the javadocs, like being able to see all 
classes which have the sitemap generator tags, would help a lot.




Or more simpler, and we already talked about this, what about tagging 
the source files themselves to be able to produce javadocs of a 
restricted set of classes, i.e. those that are considered public API and 
that people can safely rely on.


There you go! +1

--
Stefano.



Re: javadocs navigation

2005-10-12 Thread Upayavira

Stefano Mazzocchi wrote:

Sylvain Wallez wrote:


Bertrand Delacretaz wrote:


Le 12 oct. 05, à 05:16, Stefano Mazzocchi a écrit :

...I think a better, leaner, cleaner javadoc would go a *LNG* 
way to make things easier...





I was thinking about that recently - does anyone know a tool for 
tag-based navigation of javadocs?


A better *navigation* of the javadocs, like being able to see all 
classes which have the sitemap generator tags, would help a lot.





Or more simpler, and we already talked about this, what about tagging 
the source files themselves to be able to produce javadocs of a 
restricted set of classes, i.e. those that are considered public API 
and that people can safely rely on.



There you go! +1


So how do we decide what is internal, what is external? The discussion 
is likely to be fun.


We could have a wiki page containing all classes, and mark the ones on 
that wiki page that we want to be public. Then a script could add the 
necessary javadoc markup.


If that approach sounds okay, I'd happily volunteer to write the script 
to add the markup, assuming it is a simple enough markup.


Thoughts?

Regards, Upayavira


Re: javadocs navigation

2005-10-12 Thread Vadim Gritsenko

Upayavira wrote:

Stefano Mazzocchi wrote:


Sylvain Wallez wrote:

Or more simpler, and we already talked about this, what about tagging 
the source files themselves to be able to produce javadocs of a 
restricted set of classes, i.e. those that are considered public API 
and that people can safely rely on.


There you go! +1


So how do we decide what is internal, what is external? The discussion 
is likely to be fun.


Let's start small - let's mark as public, external classes only those where we 
have consensus, and leave questionable classes out, have a discussion on them 
later.



We could have a wiki page containing all classes, and mark the ones on 
that wiki page that we want to be public. Then a script could add the 
necessary javadoc markup.


Wiki page, where each java class can be marked as one of:
  public / private / dispute / not-marked-yet.


If that approach sounds okay, I'd happily volunteer to write the script 
to add the markup, assuming it is a simple enough markup.


Sounds good

Vadim


Re: javadocs navigation

2005-10-12 Thread Stefano Mazzocchi

Upayavira wrote:

Stefano Mazzocchi wrote:


Sylvain Wallez wrote:


Bertrand Delacretaz wrote:


Le 12 oct. 05, à 05:16, Stefano Mazzocchi a écrit :

...I think a better, leaner, cleaner javadoc would go a *LNG* 
way to make things easier...






I was thinking about that recently - does anyone know a tool for 
tag-based navigation of javadocs?


A better *navigation* of the javadocs, like being able to see all 
classes which have the sitemap generator tags, would help a lot.






Or more simpler, and we already talked about this, what about tagging 
the source files themselves to be able to produce javadocs of a 
restricted set of classes, i.e. those that are considered public API 
and that people can safely rely on.




There you go! +1


So how do we decide what is internal, what is external? The discussion 
is likely to be fun.


Yeah, well, we are reasonable people ( sometimes ;-)

We could have a wiki page containing all classes, and mark the ones on 
that wiki page that we want to be public. Then a script could add the 
necessary javadoc markup.


If that approach sounds okay, I'd happily volunteer to write the script 
to add the markup, assuming it is a simple enough markup.


Thoughts?


Sounds good to me.

--
Stefano.



Public/Private classification (was Re: javadocs navigation)

2005-10-12 Thread Upayavira

So, I have created a wiki page:

http://wiki.apache.org/cocoon/PublicAPIClasses

Please go there and mark classes public/private as necessary. As it says 
at the top of that page, if you disagree with someone, change it to 
dispute or D for short. Then it becomes an opportunity for some 
healthy argument!


On with the asbestos underwear everyone...

Upayavira

Vadim Gritsenko wrote:

Upayavira wrote:


Stefano Mazzocchi wrote:


Sylvain Wallez wrote:

Or more simpler, and we already talked about this, what about 
tagging the source files themselves to be able to produce javadocs 
of a restricted set of classes, i.e. those that are considered 
public API and that people can safely rely on.



There you go! +1



So how do we decide what is internal, what is external? The discussion 
is likely to be fun.



Let's start small - let's mark as public, external classes only those 
where we have consensus, and leave questionable classes out, have a 
discussion on them later.



We could have a wiki page containing all classes, and mark the ones on 
that wiki page that we want to be public. Then a script could add the 
necessary javadoc markup.



Wiki page, where each java class can be marked as one of:
  public / private / dispute / not-marked-yet.


If that approach sounds okay, I'd happily volunteer to write the 
script to add the markup, assuming it is a simple enough markup.



Sounds good

Vadim





Re: javadocs navigation

2005-10-12 Thread hepabolu

Stefano Mazzocchi wrote:

I think this is our single most important problem in helping our users: 
we care too much about them and we want to give them the best experience 
we can think of.


We need to start caring less about that.


In short: Perfect is the enemy of good.

Bye, Helma



Re: javadocs navigation

2005-10-12 Thread Stefano Mazzocchi

Niclas Hedhman wrote:

On Wednesday 12 October 2005 23:59, Stefano Mazzocchi wrote:


I think this is our single most important problem in helping our users:
we care too much about them and we want to give them the best experience
we can think of.


And ironically giving users a harder time :o)


well, not a harder time, but harder than giving them something to start 
with even if not perfect or elegant or not showing how cool we can do 
things.


Very interesting observation I must say. I will indeed place that on my daily 
reminder section on the whiteboard. Too good to forget.


And can be applied to many facets of life.


Oh yes, ask my girlfriend about it: she gets nuts when I try so hard to 
have a solution for a problem she has and all she is looking for is a 
hug ;-)


--
Stefano.



Re: Public/Private classification (was Re: javadocs navigation)

2005-10-12 Thread Stefano Mazzocchi

Upayavira wrote:

So, I have created a wiki page:

http://wiki.apache.org/cocoon/PublicAPIClasses

Please go there and mark classes public/private as necessary. As it says 
at the top of that page, if you disagree with someone, change it to 
dispute or D for short. Then it becomes an opportunity for some 
healthy argument!


On with the asbestos underwear everyone...


I would suggest to start by saying N to every class that is not yet 
tagged move it from there.


I would also suggest to add all the other avalon components we ship by 
default too (I use the SourceResolver quite a bit and you need to pass 
this to the SourceUtil.getSource() so you need to get it somewhere)


Note: yes, I write all my application logic in javascript these days and 
I don't care if it's bad or I don't have eclipse for it having a 
better javadoc would be just enough.


--
Stefano.



Re: javadocs navigation

2005-10-12 Thread Stefano Mazzocchi

hepabolu wrote:

Stefano Mazzocchi wrote:

I think this is our single most important problem in helping our 
users: we care too much about them and we want to give them the best 
experience we can think of.


We need to start caring less about that.


In short: Perfect is the enemy of good.


and Good is not really a friend of good enough either ;-)

--
Stefano.



[OT] Re: javadocs navigation

2005-10-12 Thread Sylvain Wallez

Stefano Mazzocchi wrote:

Oh yes, ask my girlfriend about it: she gets nuts when I try so hard 
to have a solution for a problem she has and all she is looking for is 
a hug ;-)



Hehe. This is a very common misunderstanding between men and women: men 
try to find a solution to what is actually not a problem, but a call for 
communication ;-)


Sylvain

--
Sylvain WallezAnyware Technologies
http://people.apache.org/~sylvain http://www.anyware-tech.com
Apache Software Foundation Member Research  Technology Director



Re: Public/Private classification (was Re: javadocs navigation)

2005-10-12 Thread Vadim Gritsenko

Stefano Mazzocchi wrote:

Upayavira wrote:


So, I have created a wiki page:

http://wiki.apache.org/cocoon/PublicAPIClasses


I would also suggest to add all the other avalon components we ship by 
default too (I use the SourceResolver quite a bit and you need to pass 
this to the SourceUtil.getSource() so you need to get it somewhere)


Yep, can we have please avalon-framework, excalibur-* classes in there too? May 
be on separate page? LOTS of those classes, me thinks, are our public API.


Vadim