Hello.
After years of using Tapestry 4.0, I just started experimenting with T5,
and although it brings much improvement, I noticed a few issues:
1. Biggest issue - most of serious web apps out there wil always have few
servlets/filters defined in their web.xml, and thus using
<url-pattern>/*</url-pattern> mapping for tapestry filter is not acceptable
since there will be other mappings defined there. But problem is if one
specifies for instance /web/* mapping for tapestry filter, that forces
specific undesirable structure of packaging of tapestry related code:
com.mycompany.myapp.pages.web
I don't want to have this "web" package jus becuase I picked that url
pattern. Sometimes I change url patterns rapidly on deployment sites just
because customer told me that URLs would look better to them. I just go to
web.xml, and change it in a matter of few minutes. Now it would be
impossible since it would require refactoring and recompiling many packages.
I always considered that url mapping of both servlets or filters should not
influence application internals, and should be completely transparent thing
if one needs to change it. Similar as one can change name of some .war file
and everything works relative to it.
2. I know that Tapestry picked convention over configuration, but there is a
small drawback with it since good packaging should be defined by domain
logic, not by implementing technology.
For instance, it is not advisable to have packages called "sessionbeans" and
"entitybeans" in your EJB app, it is no good to have "dao", "model"
etc...Similary, it is no good to have "pages", "components" etc... Domain
packaging by having "users", "messages", "companies" is good. Of course,
Tapestry allows subpackaging of "pages" and "components" packages, but thing
is that if one has to define 2 packages when having many components or pages
related to one domain module - "components.users" and "pages.users".
I admit that this is no big issue, just small dissapointment that I have to
structure my app now differently from what I believe is optimal.
3. Automatic shortening of page names seems totaly unnecessary to me. (just
my opinion), sicne it can just bring some small confusion sometimes. Anyway,
I don't object so much if it is optiona lfeature, but I think I found a bug
today -
I have a page under
com.mycompany.myapp.pages.users.Users
In other words users/Users page. But when I referenced it, Tapestry rasied
exception saying that page doesn't exist, only "users/" ??!
4 Most of some special purpose methods can use naming convention or
annotation demarcation to mark their special purpose. Like event ethods, or
rendering phases. I don't see why onActivate and onPassivate don't follow
consistency and have annotations to mark them?
Regards,
Vjeran
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]