On Sun, Apr 4, 2010 at 09:23, Dan Allen <dan.j.allen@gmail.com> wrote:
Yes, I agree we should avoid duplicate class names in the public API as a general rule, because we've seen the confusion that has caused in the Java EE API (@ManagedBean, @*Scoped, etc). But still, too much package sharing can also be confusing for the developer because it becomes somewhat unclear which modules are providing which classes. So we are agreeing that modules use the base name space of org.jboss.seam.[module], correct? (With the special case of interceptors/decorators, see next).

Originally I was thinking differently, but I'm good with this.  It's still easy to understand, and to a degree still follows the Seam2 package structure so it shouldn't be that difficult to understand how to migrate.  It also helps by knowing exactly which modules you're using just by looking at the imports.  Hopefully the overlap and dependencies between modules is kept to a minimum. 
 
That said, Shane had brought up that interceptors and decorators should at least be under the module's base package (the second proposed convention for interceptors/decorators above). We need a vote on that convention:

a) org.jboss.seam.intercept  / org.jboss.seam.decorate

If there's a need to have common intercepters / decorators I'd say put them here, otherwise go with option b.  Option B is consistent with what is being done above, so there's no ambiguity.
 
b) org.jboss.seam.[module].intercept / org.jboss.seam.[module].decorate

Let's find a common ground quickly on this...it's not worth dragging out.

I agree, I dislike long conversations of this nature :) I say we're good with this, time to move on. 

--
Jason Porter

Software Engineer
Open Source Advocate

PGP key id: 926CCFF5
PGP key available at: keyserver.net, pgp.mit.edu