The Tapernate entity squeezer has now been updated to include the aforementioned changes. The documentation (www.carmanconsulting.com/tapernate) has been updated to reflect the new configuration options available for the squeezer. Enjoy!
James -----Original Message----- From: James Carman [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 06, 2006 7:52 PM To: 'Tapestry users' Subject: RE: Tapernate Squeezer... That's the way I went with it. I also made a configurable option (set via a FactoryDefault symbol) that will allow you to tell it whether or not to use the "short name" of the classes or not. The default is to use the short name. -----Original Message----- From: Ted Steen [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 06, 2006 7:42 PM To: Tapestry users Subject: Re: Tapernate Squeezer... Hi, I too like the idea of a configuration point for the substitutions. I can't see a way to convert the name into something more simple, without the risk of getting collisions and/or somewhat ugly URLs. With a configuration point one will be able to; * Get the abbreviation of the entity class to be as small as a single character * Have no collisions * Rename an entity without problems * "Force"/entices us to configure our own abbreviations, which is good because otherwise there could be trouble when renaming entities. 2006/6/6, Andreas Andreou <[EMAIL PROTECTED]>: > James Carman wrote: > > Actually, I like Adreas Androu's idea. He said (from the developers list): > > > > "I think I would use the entire entity name enhanced with an optional > > properties file that would allow users to define substitutions." > > > > However, I'm going to go one better. Instead of using a properties file, > > I'll create a configuration point for the overrides. That's the "HiveMind > > Way." > > > hehe! Actually I initially meant to write: > "I think I would use the entire entity name enhanced with substitutions" > feeling that you'll make out the missing parts > > When I said "use the hashCode()", I meant to use the hashCode() of the > > entity name (a String) itself, not of the entity. > > > > -----Original Message----- > > From: Andreas Bulling [mailto:[EMAIL PROTECTED] On Behalf Of > > Andreas Bulling > > Sent: Tuesday, June 06, 2006 8:24 AM > > To: Tapestry users > > Subject: Re: Tapernate Squeezer... > > > > Hi James, > > > > I'd vote for the hashCode() approach, why: > > > > 1) It's the approach already used and widely accepted (for example > > in Hibernate) > > > > 2) using Hibernate (which is what Tapernate is dedicated to) you > > are advised to implement hashCode() and equals() anyway (according > > to the Hibernate homepage) so it's no additional expense to use > > it for Tapernate. > > > > Just my two cents... > > Andreas > > > > On 06. Jun 2006 - 08:08:21, James Carman wrote: > > | For those of you who are using Tapernate (and those of you who have done > > | something similar in the past), I have a question for you. Currently, the > > | Tapernate entity squeezer uses an abbreviation for the class name > > (basically > > | an integer). However, I was thinking that this might not be a good thing > > | for external links. What would happen if the application is restarted and > > | someone has bookmarked an external link? So, I need to come up with a > > | reliable/repeatable way to "shrink" the entity name down to a small > > string. > > | Now, the situation gets even trickier when you consider the fact that your > > | application may add entity classes between releases. Therefore, I can't > > | just sort the entity class names and then assign them a number (their > > index > > | in a list). I *really* don't want the entire entity name in the URLs. > > That > > | would look kind of cheesy. The way I see it, there are some options... > > | > > | 1. Use a message digest of the entity name. The message digests would > > all > > | be the same length, so we wouldn't have to worry about the URLs "growing" > > | when the entity name grew. But, there *is* the chance for digest > > collisions > > | (digest of entity name A is the same as digest of entity name B). > > | > > | 2. Use the hashCode() of the entity name Strings. Again, we've got the > > | possibility for collisions. > > | > > | 3. Just use the "simple" entity name (the part of the name after the last > > | '.'). I don't think Hibernate requires that you have unique "simple" > > names > > | for your entity classes. In practice, this is typically not a problem. > > | But, in general, it's not a robust solution. > > | > > | 4. Just use the entire entity name and don't worry about all of this! > > | Users can override it if they wish and how they wish. > > | > > | I will be creating a service point which does the translation to/from the > > | entity name abbreviation and users can override it if they want. Which of > > | these (or if you have other ideas) would be the best "default", though? > > The > > | entity squeezer will detect when there is a collision and either throw an > > | exception or print an error message to the logs (haven't decided yet) to > > let > > | you know that you need to come up with a better solution for entity name > > | abbreviation. > > | > > | James > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- ted --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]