Using composition instead of inheritance
Hello, I'm after some general modelling advice. I've been using inheritance for years to model app-specific versions of a framework-level Person (user) entity. This works well enough, though it presents the same small headaches time after time for each new application. I also have a framework-level Organisation entity to model a user's organisation. I need to customise this for a new application, and I thought this time I would use composition instead of inheritance—I'll create a new FooOrganisation entity which has a to-one relationship to Organisation (without the inverse relationship), and then the additional attributes and/or relationships which are app-specific. The application is still in development, but there's a demo deployment, and while I _can_ wipe the database, there are existing Organisation EOs in it, and it would be nice if I didn't have to. I'm using migrations, so I can perform any one-off fix-ups in a post-migration step. So, do people model like this? Are there any pitfalls? What's the best way to ensure referential integrity, such that Organisation and FooOrganisation remain 1-1—'owns destination' and 'propagates primary key'? (Selecting those will require I scrap the DB and create the FooOrganisations first, won't it?) Would dynamically adding some properties to the model at runtime be a better option here if I just want to store, say, a few limited extra attributes on an entity? -- Paul Hoadley http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Maven Plugin
hi for all, Maven 3 supports parallel building - -T number_of_threads option. but wolifecycle-plugin is not threadSafe: [WARNING] * [WARNING] * Your build is requesting parallel execution, but project * [WARNING] * contains the following plugin(s) that are not marked as * [WARNING] * @threadSafe to support parallel building. * [WARNING] * While this /may/ work fine, please look for plugin updates* [WARNING] * and/or request plugins be made thread-safe. * [WARNING] * If reporting an issue, report it against the plugin in* [WARNING] * question, not against maven-core * [WARNING] * [WARNING] The following plugins are not marked @threadSafe in LegalSoundsBusinessLogic: [WARNING] org.objectstyle.woproject.maven2:maven-wolifecycle-plugin:2.2.1 [WARNING] * where can i get the sources of plugin? or how can i fix this issue? thanx. ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: D2W: Selectors for enum types?
On 25/05/2012, at 1:14 AM, Ramsey Gurley wrote: On May 24, 2012, at 3:03 AM, Paul Hoadley wrote: = restrictedChoiceKey = object.availableStatuses where availableStatuses() is a method on Provision that returns 'new NSArrayStatus(Status.values());'. I'm getting an IllegalStatusException when I try and load that (ERMODQueryPage) page: java.lang.IllegalStateException: Destination entity could not be retrieved from EO of bindings. There is no object on a query page. You'll probably need to make a query enum component. I've not done one of those yet, but I'm adding it to my todo list :-) I'm getting the same problem on a ERMODWizardCreationPage—is it the same explanation? I can successfully edit an enum attribute value on an existing EO, but I can't create a new one. -- Paul Hoadley http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: ERJaveMail
my guess is that your regex pattern for er.javamail.emailPattern doesn't work. i'm not even going to try debugging that one, though. what's wrong with the pattern that's built into erjavamail? On May 29, 2012, at 2:43 AM, Ron X ron.x.by...@gmail.com wrote: hi, i have some strange error on application start: WARN 38.33 MB used/42.73 MB free [ProcessChangesQueue] (ERXNSLogLog4jBridge.java:43) - A fatal exception occurred: When 'er.javamail.centralize' is true (default), all outgoing mails will get sent to 'er.javamail.adminEmail' instead of the normal TO addresses, but you did not provide a valid email for that property. [2012-5-28 23:40:30 PDT] ProcessChangesQueue java.lang.IllegalArgumentException: When 'er.javamail.centralize' is true (default), all outgoing mails will get sent to 'er.javamail.adminEmail' instead of the normal TO addresses, but you did not provide a valid email for that property. at er.javamail.ERJavaMail.initializeFrameworkFromSystemProperties(ERJavaMail.java:132) at er.javamail.ERJavaMail.finishInitialization(ERJavaMail.java:113) at er.extensions.ERXFrameworkPrincipal$Observer.willFinishInitialization(ERXFrameworkPrincipal.java:97) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) but i have ### ERJavaMail er.javamail.centralize = true er.javamail.smtpHost = localhost er.javamail.defaultEncoding = UTF-8 er.javamail.emailPattern = ^[a-zA-Z0-9!#$%'*+\\-/=?^_`{|}~]+(\\.[a-zA-Z0-9!#$%'*+\\-/=?^_`{|}~]+)*@[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9]){0,1}((\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9]){0,1})*\\.[a-zA-Z]{2,6}){1,1}$ er.javamail.adminEmail = admin@localhost.local in my property file ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com This email sent to msch...@pobox.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: D2W: Selectors for enum types?
A create page should have an object. Depending on how you created the page, you may have forgotten to set the object though. Ramsey On May 29, 2012, at 4:11 AM, Paul Hoadley wrote: On 25/05/2012, at 1:14 AM, Ramsey Gurley wrote: On May 24, 2012, at 3:03 AM, Paul Hoadley wrote: = restrictedChoiceKey = object.availableStatuses where availableStatuses() is a method on Provision that returns 'new NSArrayStatus(Status.values());'. I'm getting an IllegalStatusException when I try and load that (ERMODQueryPage) page: java.lang.IllegalStateException: Destination entity could not be retrieved from EO of bindings. There is no object on a query page. You'll probably need to make a query enum component. I've not done one of those yet, but I'm adding it to my todo list :-) I'm getting the same problem on a ERMODWizardCreationPage—is it the same explanation? I can successfully edit an enum attribute value on an existing EO, but I can't create a new one. -- Paul Hoadley http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Using composition instead of inheritance
Paul, My first question would be - how do you actually benefit from having this data separated? Is there a reason that you don't just create a new entity for the new project that can represent the entire organization? If the reason is that you have code that you would typically use in more than one project, I would consider building that into POJOs . In general, I find that the benefits of splitting up entities (either through inheritance OR composition) seldom outweighs the benefits of having them together, unless there are some circumstances that totally warrant it. If you could provide more information on the perceived benefits, people might be able to help you better. Ken On May 29, 2012, at 1:16 AM, Paul Hoadley wrote: Hello, I'm after some general modelling advice. I've been using inheritance for years to model app-specific versions of a framework-level Person (user) entity. This works well enough, though it presents the same small headaches time after time for each new application. I also have a framework-level Organisation entity to model a user's organisation. I need to customise this for a new application, and I thought this time I would use composition instead of inheritance—I'll create a new FooOrganisation entity which has a to-one relationship to Organisation (without the inverse relationship), and then the additional attributes and/or relationships which are app-specific. The application is still in development, but there's a demo deployment, and while I _can_ wipe the database, there are existing Organisation EOs in it, and it would be nice if I didn't have to. I'm using migrations, so I can perform any one-off fix-ups in a post-migration step. So, do people model like this? Are there any pitfalls? What's the best way to ensure referential integrity, such that Organisation and FooOrganisation remain 1-1—'owns destination' and 'propagates primary key'? (Selecting those will require I scrap the DB and create the FooOrganisations first, won't it?) Would dynamically adding some properties to the model at runtime be a better option here if I just want to store, say, a few limited extra attributes on an entity? -- Paul Hoadley http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/kenlists%40anderhome.com This email sent to kenli...@anderhome.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Using composition instead of inheritance
This is the problem that Partial Entities were attempting to solve ( http://webobjects.mdimension.com/hudson/job/Wonder/javadoc/er/extensions/partials/package-summary.html ). I would consider it experimental, but if anyone wants to take it and finish it, go for it. ms On May 29, 2012, at 1:40 PM, Ken Anderson kenli...@anderhome.com wrote: Paul, My first question would be - how do you actually benefit from having this data separated? Is there a reason that you don't just create a new entity for the new project that can represent the entire organization? If the reason is that you have code that you would typically use in more than one project, I would consider building that into POJOs . In general, I find that the benefits of splitting up entities (either through inheritance OR composition) seldom outweighs the benefits of having them together, unless there are some circumstances that totally warrant it. If you could provide more information on the perceived benefits, people might be able to help you better. Ken On May 29, 2012, at 1:16 AM, Paul Hoadley wrote: Hello, I'm after some general modelling advice. I've been using inheritance for years to model app-specific versions of a framework-level Person (user) entity. This works well enough, though it presents the same small headaches time after time for each new application. I also have a framework-level Organisation entity to model a user's organisation. I need to customise this for a new application, and I thought this time I would use composition instead of inheritance—I'll create a new FooOrganisation entity which has a to-one relationship to Organisation (without the inverse relationship), and then the additional attributes and/or relationships which are app-specific. The application is still in development, but there's a demo deployment, and while I _can_ wipe the database, there are existing Organisation EOs in it, and it would be nice if I didn't have to. I'm using migrations, so I can perform any one-off fix-ups in a post-migration step. So, do people model like this? Are there any pitfalls? What's the best way to ensure referential integrity, such that Organisation and FooOrganisation remain 1-1—'owns destination' and 'propagates primary key'? (Selecting those will require I scrap the DB and create the FooOrganisations first, won't it?) Would dynamically adding some properties to the model at runtime be a better option here if I just want to store, say, a few limited extra attributes on an entity? -- Paul Hoadley http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/kenlists%40anderhome.com This email sent to kenli...@anderhome.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com This email sent to msch...@pobox.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: New Tomcat 6 Deployment
I have noticed these messages too and would like to know if there is anything that can be done about them Tim On 29/05/2012, at 23:31, Ron Lift rpgi...@gmail.com wrote: At work we are migrating from RHEL 5 to RHEL 6 and also upgrading to Tomcat 6. When I deploy the current application that is running on Tomcat 5.5 to tomcat 6, I see the following messages in the catalina.out when I either deploy the app, start/ stop the app or the tomcat instance. I do not have these messages in my tomcat 5.5 log files. Is there some setting that I am missing? Any help will be greatly appreciated Eclipse 3.6.1 , WOLips 3.6. MSSQL 2008R2 Database. The last 2 messages repeat multiple times May 29, 2012 8:59:00 AM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc SEVERE: The web application [/CoopApp] registered the JDBC driver [com.microsoft.sqlserver.jdbc.SQLServerDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. May 29, 2012 8:59:00 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE: The web application [/CoopApp] created a ThreadLocal with key of type [er.extensions.eof.ERXEC$1] (value [er.extensions.eof.ERXEC$1@1083964f]) and a value of type [java.util.Vector] (value [[]]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. May 29, 2012 8:59:00 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE: The web application [/CoopApp] created a ThreadLocal with key of type [er.extensions.foundation.ERXThreadStorage.ERXThreadStorageCloneableThreadLocal] (value [er.extensions.foundation.ERXThreadStorage$ERXThreadStorageCloneableThreadLocal@2f012501]) and a value of type [java.util.HashMap] (value [{}]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. Ron Lift C-E ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/tim%40triptera.com.au This email sent to t...@triptera.com.au ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
questions on some moo tools components
Hello all: I've been testing out some of the Moo Tools components when I have a chance. Today I've been trying some of the options for in place text fields. I just want to see if a problem I'm having is actually a problem with the operator. :-) I've inserted the fancy in place editor into my app just as it is in the Moo Tools example. For some reason I can't figure out, the save and cancel buttons in the edit mode do not return the editor to view mode. My wod definitions for the buttons look like this: FancySave : MTAjaxSubmitButton { action = savePerson; updateContainerID = FullPersonViewUpdater; value = save; class = btn btn-primary; onClick = fancySave(); } FancyCancel : AjaxFunctionLink { class = btn; onclick = fancyCancel(); } Right now I'm using the same css as the example and FullPersonViewUpdater is a surrounding MTAjaxUpdateContainer. I don't know where fancySave() or fancyCancel live. (I've tried to use the Eclipse file search but right now it is in one of those moods where it generates an error on each search attempt.) Can anyone push me in the right direction to figure out why the buttons to update the view? Tim UCLA GSEIS ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: questions on some moo tools components
Hi Tim, I'm battling the flu right now. So I'm about ready to go crashing into my keyboard but I believe it's in MTWonder.js file: var MTAjaxInPlace = { saveFunctionName: function(id) { return window. + id + Save; }, cancelFunctionName: function(id) { return window. + id + Cancel; }, editFunctionName: function(id) { return window. + id + Edit; }, cleanupEdit: function(id) { var saveFunctionName = this.saveFunctionName(id); var cancelFunctionName = this.cancelFunctionName(id); if (typeof eval(saveFunctionName) != 'undefined') { eval(saveFunctionName + = null); } if (typeof eval(cancelFunctionName) != 'undefined') { eval(cancelFunctionName + = null); } }, cleanupView: function(id) { var editFunctionName = this.editFunctionName(id); if (typeof eval(editFunctionName) != 'undefined') { eval(editFunctionName + = null); } } }; Check your declaration for MTAjaxInPlace that it's id is fancy: FancyInPlace : MTAjaxInPlace { formClass = well; id = fancy; manualEditControl = true; } HTH, Johnny Miller Kahalawai Media Corp. www.kahalawai.com On May 29, 2012, at 9:54 AM, Tim Worman wrote: Hello all: I've been testing out some of the Moo Tools components when I have a chance. Today I've been trying some of the options for in place text fields. I just want to see if a problem I'm having is actually a problem with the operator. :-) I've inserted the fancy in place editor into my app just as it is in the Moo Tools example. For some reason I can't figure out, the save and cancel buttons in the edit mode do not return the editor to view mode. My wod definitions for the buttons look like this: FancySave : MTAjaxSubmitButton { action = savePerson; updateContainerID = FullPersonViewUpdater; value = save; class = btn btn-primary; onClick = fancySave(); } FancyCancel : AjaxFunctionLink { class = btn; onclick = fancyCancel(); } Right now I'm using the same css as the example and FullPersonViewUpdater is a surrounding MTAjaxUpdateContainer. I don't know where fancySave() or fancyCancel live. (I've tried to use the Eclipse file search but right now it is in one of those moods where it generates an error on each search attempt.) Can anyone push me in the right direction to figure out why the buttons to update the view? Tim UCLA GSEIS ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/jlmiller%40kahalawai.com This email sent to jlmil...@kahalawai.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: questions on some moo tools components
Johnny: Feel better. That's what I needed. I kept trying to inspect the page but couldn't find how the functions were being generated. This makes sense. Thanks much! Tim On May 29, 2012, at 1:14 PM, Johnny Miller jlmil...@kahalawai.com wrote: Hi Tim, I'm battling the flu right now. So I'm about ready to go crashing into my keyboard but I believe it's in MTWonder.js file: var MTAjaxInPlace = { saveFunctionName: function(id) { return window. + id + Save; }, cancelFunctionName: function(id) { return window. + id + Cancel; }, editFunctionName: function(id) { return window. + id + Edit; }, cleanupEdit: function(id) { var saveFunctionName = this.saveFunctionName(id); var cancelFunctionName = this.cancelFunctionName(id); if (typeof eval(saveFunctionName) != 'undefined') { eval(saveFunctionName + = null); } if (typeof eval(cancelFunctionName) != 'undefined') { eval(cancelFunctionName + = null); } }, cleanupView: function(id) { var editFunctionName = this.editFunctionName(id); if (typeof eval(editFunctionName) != 'undefined') { eval(editFunctionName + = null); } } }; Check your declaration for MTAjaxInPlace that it's id is fancy: FancyInPlace : MTAjaxInPlace { formClass = well; id = fancy; manualEditControl = true; } HTH, Johnny Miller Kahalawai Media Corp. www.kahalawai.com On May 29, 2012, at 9:54 AM, Tim Worman wrote: Hello all: I've been testing out some of the Moo Tools components when I have a chance. Today I've been trying some of the options for in place text fields. I just want to see if a problem I'm having is actually a problem with the operator. :-) I've inserted the fancy in place editor into my app just as it is in the Moo Tools example. For some reason I can't figure out, the save and cancel buttons in the edit mode do not return the editor to view mode. My wod definitions for the buttons look like this: FancySave : MTAjaxSubmitButton { action = savePerson; updateContainerID = FullPersonViewUpdater; value = save; class = btn btn-primary; onClick = fancySave(); } FancyCancel : AjaxFunctionLink { class = btn; onclick = fancyCancel(); } Right now I'm using the same css as the example and FullPersonViewUpdater is a surrounding MTAjaxUpdateContainer. I don't know where fancySave() or fancyCancel live. (I've tried to use the Eclipse file search but right now it is in one of those moods where it generates an error on each search attempt.) Can anyone push me in the right direction to figure out why the buttons to update the view? Tim UCLA GSEIS ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/jlmiller%40kahalawai.com This email sent to jlmil...@kahalawai.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Maven Plugin
Hi Ron, https://github.com/wolips/wolips/tree/master/maven2/maven-wolifecycle-plugin Cheers, Henrique On 29/05/2012, at 04:13, Ron X wrote: hi for all, Maven 3 supports parallel building - -T number_of_threads option. but wolifecycle-plugin is not threadSafe: [WARNING] * [WARNING] * Your build is requesting parallel execution, but project * [WARNING] * contains the following plugin(s) that are not marked as * [WARNING] * @threadSafe to support parallel building. * [WARNING] * While this /may/ work fine, please look for plugin updates* [WARNING] * and/or request plugins be made thread-safe. * [WARNING] * If reporting an issue, report it against the plugin in* [WARNING] * question, not against maven-core * [WARNING] * [WARNING] The following plugins are not marked @threadSafe in LegalSoundsBusinessLogic: [WARNING] org.objectstyle.woproject.maven2:maven-wolifecycle-plugin:2.2.1 [WARNING] * where can i get the sources of plugin? or how can i fix this issue? thanx. ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/hprange%40gmail.com This email sent to hpra...@gmail.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Using composition instead of inheritance
Hi Ken, On 30/05/2012, at 3:10 AM, Ken Anderson wrote: My first question would be - how do you actually benefit from having this data separated? I don't. It's just a side effect of wanting to have an app-specific EO based on a more general framework-level EO. Is there a reason that you don't just create a new entity for the new project that can represent the entire organization? Just code/entity reuse. I already have a framework-level Organisation entity. It's just that different applications want to be able to hang different attributes and relationships off it. If the reason is that you have code that you would typically use in more than one project, I would consider building that into POJOs . In general, I find that the benefits of splitting up entities (either through inheritance OR composition) seldom outweighs the benefits of having them together, unless there are some circumstances that totally warrant it. If you could provide more information on the perceived benefits, people might be able to help you better. It's basically the exact scenario described in the Javadocs for Mike Schrag's partial entities: A very common case where this becomes useful is that of a Person entity. Person is an entity that is used in many different scenarios, each of which requires additional attributes and relationships. For instance, you may have a task management application and you want to embed your calendaring framework into it. The common Person base entity may have username and password attributes, the tasking application may add an activeTasks relationship, and the calendaring framework may add a scheduledEvents relationship as well as dayStartTime and dayEndTime attributes. Note that partials are not designed to address the issue of roles, where different people in the system may have different roles at different times. Partial entities are designed to address the issue of combining high level modules together to form more complex static entity declarations. That's precisely the problem I'm trying to solve. Until now I've done it via inheritance. I was going to see if composition was any easier, but after diving into it, it seems to be about as hairy as inheritance, just in different places. What I settled on was adding a new column to the Organisation table using a migration, and adding a matching attribute to the model at application startup. Apart from not having the convenience of the Velocity template methods, it certainly seems to work fine. I'm still interested to know what other people are doing, though. Given the problem described by Mike above, how are people solving it? -- Paul. http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Using composition instead of inheritance
In the absence of the fancier solution (something like partial entities), I think I would make an app variant of the entity (where the class of the app one extends the class of the framework one) and model-rewrite the non-app variant to be the app variant. ms On May 29, 2012, at 6:22 PM, Paul Hoadley pa...@logicsquad.net wrote: Hi Ken, On 30/05/2012, at 3:10 AM, Ken Anderson wrote: My first question would be - how do you actually benefit from having this data separated? I don't. It's just a side effect of wanting to have an app-specific EO based on a more general framework-level EO. Is there a reason that you don't just create a new entity for the new project that can represent the entire organization? Just code/entity reuse. I already have a framework-level Organisation entity. It's just that different applications want to be able to hang different attributes and relationships off it. If the reason is that you have code that you would typically use in more than one project, I would consider building that into POJOs . In general, I find that the benefits of splitting up entities (either through inheritance OR composition) seldom outweighs the benefits of having them together, unless there are some circumstances that totally warrant it. If you could provide more information on the perceived benefits, people might be able to help you better. It's basically the exact scenario described in the Javadocs for Mike Schrag's partial entities: A very common case where this becomes useful is that of a Person entity. Person is an entity that is used in many different scenarios, each of which requires additional attributes and relationships. For instance, you may have a task management application and you want to embed your calendaring framework into it. The common Person base entity may have username and password attributes, the tasking application may add an activeTasks relationship, and the calendaring framework may add a scheduledEvents relationship as well as dayStartTime and dayEndTime attributes. Note that partials are not designed to address the issue of roles, where different people in the system may have different roles at different times. Partial entities are designed to address the issue of combining high level modules together to form more complex static entity declarations. That's precisely the problem I'm trying to solve. Until now I've done it via inheritance. I was going to see if composition was any easier, but after diving into it, it seems to be about as hairy as inheritance, just in different places. What I settled on was adding a new column to the Organisation table using a migration, and adding a matching attribute to the model at application startup. Apart from not having the convenience of the Velocity template methods, it certainly seems to work fine. I'm still interested to know what other people are doing, though. Given the problem described by Mike above, how are people solving it? -- Paul. http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com This email sent to msch...@pobox.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Using composition instead of inheritance
On 30/05/2012, at 7:55 AM, Mike Schrag wrote: In the absence of the fancier solution (something like partial entities), I think I would make an app variant of the entity (where the class of the app one extends the class of the framework one) and model-rewrite the non-app variant to be the app variant. What do you mean by the last bit: model-rewrite the non-app variant to be the app variant? -- Paul. http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Using composition instead of inheritance
This is the problem that Partial Entities were attempting to solve ( http://webobjects.mdimension.com/hudson/job/Wonder/javadoc/er/extensions/partials/package-summary.html ). I would consider it experimental, but if anyone wants to take it and finish it, go for it. By experimental, is it closer to you would be crazy to use this right now or this probably works? Roughly what remains to be done? Meaning i have no idea what state this is in. It basically worked for my test cases, but I never used it in real life. I have no idea if it has since been broken by later changes to wonder (this was years ago). Certainly a decent starting point if you wanted to try to ship something based on the concept. ms ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: D2W: Selectors for enum types?
Hi Ramsey, On 30/05/2012, at 1:10 AM, Ramsey Gurley wrote: A create page should have an object. Depending on how you created the page, you may have forgotten to set the object though. I've just modified the MainNavigationController class that ships with the ModernLook template. Eventually this gets called: EditPageInterface epi = D2W.factory().editPageForNewObjectWithEntityNamed(entityName, session()); That should do it, shouldn't it? -- Paul Hoadley http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Using composition instead of inheritance
FrameworkPerson (and all code in the framework refers to that) and AppPerson (extends FrameworkPerson class, and all app code refers to that). When your models load, replace FrameworkPerson entity with AppPerson entity, so fetches for FrameworkPerson are secretly the equivalent to what AppPerson fetches would be. This is assuming EVERY row in your person table is an AppPerson in any given app. ms On May 29, 2012, at 6:28 PM, Paul Hoadley pa...@logicsquad.net wrote: On 30/05/2012, at 7:55 AM, Mike Schrag wrote: In the absence of the fancier solution (something like partial entities), I think I would make an app variant of the entity (where the class of the app one extends the class of the framework one) and model-rewrite the non-app variant to be the app variant. What do you mean by the last bit: model-rewrite the non-app variant to be the app variant? -- Paul. http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: D2W: Selectors for enum types?
That just creates the edit page. I believe you still need to epi.setObject(). On May 29, 2012, at 3:30 PM, Paul Hoadley wrote: Hi Ramsey, On 30/05/2012, at 1:10 AM, Ramsey Gurley wrote: A create page should have an object. Depending on how you created the page, you may have forgotten to set the object though. I've just modified the MainNavigationController class that ships with the ModernLook template. Eventually this gets called: EditPageInterface epi = D2W.factory().editPageForNewObjectWithEntityNamed(entityName, session()); That should do it, shouldn't it? -- Paul Hoadley http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/rgurley%40smarthealth.com This email sent to rgur...@smarthealth.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Using composition instead of inheritance
On 30/05/2012, at 8:01 AM, Mike Schrag wrote: FrameworkPerson (and all code in the framework refers to that) and AppPerson (extends FrameworkPerson class, and all app code refers to that). When your models load, replace FrameworkPerson entity with AppPerson entity, so fetches for FrameworkPerson are secretly the equivalent to what AppPerson fetches would be. This is assuming EVERY row in your person table is an AppPerson in any given app. Thanks Mike. -- Paul. http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: D2W: Selectors for enum types?
Oh, sorry. Misread the method name. I read it as editPageWithEntityNamed. Yes, your object should exist. What's the stack trace again? On May 29, 2012, at 4:32 PM, Paul Hoadley wrote: Hi Ramsey, On 30/05/2012, at 8:32 AM, Ramsey Gurley wrote: That just creates the edit page. I believe you still need to epi.setObject(). I can't believe I'm doubting a D2W guru, but are you _sure_? :-) http://webobjects.mdimension.com/javadoc/WebObjects/5.4/com/webobjects/directtoweb/D2W.html#editPageForNewObjectWithEntityNamed(java.lang.String,%20com.webobjects.appserver.WOSession) Creates a new object and returns an edit page... It's creating the object, not me. In any case, if I remove the enum attribute from displayPropertyKeys, it creates a new EO just fine without calling setObject() anywhere. Is there something special about ERMODWizardCreationPage? -- Paul Hoadley http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: D2W: Selectors for enum types?
On 30/05/2012, at 9:11 AM, Ramsey Gurley wrote: Oh, sorry. Misread the method name. I read it as editPageWithEntityNamed. Yes, your object should exist. What's the stack trace again? May 30 09:13:20 SurvStarAdmin[60371] WARN NSLog (CreateOrganisation) - com.webobjects.appserver._private.WOComponentRequestHandler: Exception occurred while handling request: java.lang.IllegalStateException: Destination entity could not be retrieved from EO of bindings. Either set the sourceObject to an EO, provide the sourceEntityName and relationshipKey, the destinationEntityName or the possibleChoices binding. [2012-5-30 9:13:20 CST] WorkerThread0 java.lang.IllegalStateException: Destination entity could not be retrieved from EO of bindings. Either set the sourceObject to an EO, provide the sourceEntityName and relationshipKey, the destinationEntityName or the possibleChoices binding. at er.extensions.components.ERXArrayChooser._destinationEntityName(ERXArrayChooser.java:263) at er.extensions.components.ERXArrayChooser.destinationEntityName(ERXArrayChooser.java:234) at er.extensions.components.ERXArrayChooser.dataSource(ERXArrayChooser.java:317) at er.extensions.components.ERXArrayChooser.theList(ERXArrayChooser.java:420) at er.extensions.woextensions.WOToOneRelationship.theList(WOToOneRelationship.java:127) This is a different entity to the one I was discussing earlier in the thread, though it's basically the same situation: an attribute using an enum as a custom type. Incidentally, it's the same issue I'm discussing in another thread: this attribute is added to the entity at runtime. I'm pretty sure that's all working fine, as I can display the enum value in an inspect page, and I can edit the enum value in a normal edit page—everything goes to and from the DB as intended. It's just the wizard creation page that's got me stumped. I don't have any additional rules specific for creation, just the ones described in your talk for the edit task using ERD2WEditToOneRelationship. -- Paul. http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: D2W: Selectors for enum types?
Here are the rules I'm using that relate to creating my entity with an enum attribute: 60 : destinationEntity.name = 'Type' = localizeDisplayKeys = true [com.webobjects.directtoweb.BooleanAssignment] 65 : (task = 'edit' and propertyKey = 'type') = componentName = ERD2WEditToOneRelationship [com.webobjects.directtoweb.Assignment] 65 : (task = 'edit' and propertyKey = 'type') = toOneUIStyle = popup [com.webobjects.directtoweb.Assignment] Works fine over here. David On 2012-05-29, at 4:49 PM, Paul Hoadley wrote: On 30/05/2012, at 9:11 AM, Ramsey Gurley wrote: Oh, sorry. Misread the method name. I read it as editPageWithEntityNamed. Yes, your object should exist. What's the stack trace again? May 30 09:13:20 SurvStarAdmin[60371] WARN NSLog (CreateOrganisation) - com.webobjects.appserver._private.WOComponentRequestHandler: Exception occurred while handling request: java.lang.IllegalStateException: Destination entity could not be retrieved from EO of bindings. Either set the sourceObject to an EO, provide the sourceEntityName and relationshipKey, the destinationEntityName or the possibleChoices binding. [2012-5-30 9:13:20 CST] WorkerThread0 java.lang.IllegalStateException: Destination entity could not be retrieved from EO of bindings. Either set the sourceObject to an EO, provide the sourceEntityName and relationshipKey, the destinationEntityName or the possibleChoices binding. at er.extensions.components.ERXArrayChooser._destinationEntityName(ERXArrayChooser.java:263) at er.extensions.components.ERXArrayChooser.destinationEntityName(ERXArrayChooser.java:234) at er.extensions.components.ERXArrayChooser.dataSource(ERXArrayChooser.java:317) at er.extensions.components.ERXArrayChooser.theList(ERXArrayChooser.java:420) at er.extensions.woextensions.WOToOneRelationship.theList(WOToOneRelationship.java:127) This is a different entity to the one I was discussing earlier in the thread, though it's basically the same situation: an attribute using an enum as a custom type. Incidentally, it's the same issue I'm discussing in another thread: this attribute is added to the entity at runtime. I'm pretty sure that's all working fine, as I can display the enum value in an inspect page, and I can edit the enum value in a normal edit page—everything goes to and from the DB as intended. It's just the wizard creation page that's got me stumped. I don't have any additional rules specific for creation, just the ones described in your talk for the edit task using ERD2WEditToOneRelationship. -- Paul. http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com This email sent to programming...@mac.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: D2W: Selectors for enum types?
On 2012-05-29, at 5:13 PM, David Holt wrote: Here are the rules I'm using that relate to creating my entity with an enum attribute: 60 : destinationEntity.name = 'Type' = localizeDisplayKeys = true [com.webobjects.directtoweb.BooleanAssignment] 65 : (task = 'edit' and propertyKey = 'type') = componentName = ERD2WEditToOneRelationship [com.webobjects.directtoweb.Assignment] 65 : (task = 'edit' and propertyKey = 'type') = toOneUIStyle = popup [com.webobjects.directtoweb.Assignment] Works fine over here. Actually disregard this comment. I just realized I changed type from an enum to an EO at some point. Sorry about that. David On 2012-05-29, at 4:49 PM, Paul Hoadley wrote: On 30/05/2012, at 9:11 AM, Ramsey Gurley wrote: Oh, sorry. Misread the method name. I read it as editPageWithEntityNamed. Yes, your object should exist. What's the stack trace again? May 30 09:13:20 SurvStarAdmin[60371] WARN NSLog (CreateOrganisation) - com.webobjects.appserver._private.WOComponentRequestHandler: Exception occurred while handling request: java.lang.IllegalStateException: Destination entity could not be retrieved from EO of bindings. Either set the sourceObject to an EO, provide the sourceEntityName and relationshipKey, the destinationEntityName or the possibleChoices binding. [2012-5-30 9:13:20 CST] WorkerThread0 java.lang.IllegalStateException: Destination entity could not be retrieved from EO of bindings. Either set the sourceObject to an EO, provide the sourceEntityName and relationshipKey, the destinationEntityName or the possibleChoices binding. at er.extensions.components.ERXArrayChooser._destinationEntityName(ERXArrayChooser.java:263) at er.extensions.components.ERXArrayChooser.destinationEntityName(ERXArrayChooser.java:234) at er.extensions.components.ERXArrayChooser.dataSource(ERXArrayChooser.java:317) at er.extensions.components.ERXArrayChooser.theList(ERXArrayChooser.java:420) at er.extensions.woextensions.WOToOneRelationship.theList(WOToOneRelationship.java:127) This is a different entity to the one I was discussing earlier in the thread, though it's basically the same situation: an attribute using an enum as a custom type. Incidentally, it's the same issue I'm discussing in another thread: this attribute is added to the entity at runtime. I'm pretty sure that's all working fine, as I can display the enum value in an inspect page, and I can edit the enum value in a normal edit page—everything goes to and from the DB as intended. It's just the wizard creation page that's got me stumped. I don't have any additional rules specific for creation, just the ones described in your talk for the edit task using ERD2WEditToOneRelationship. -- Paul. http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com This email sent to programming...@mac.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com This email sent to programming...@mac.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: D2W: Selectors for enum types?
It shouldn't have made it to the dataSource() method. You should log what rules are firing for restrictedChoiceKey. Open your log4j page and set up a d2w rule logger for that key. See what the console tells you when you load the page. Ramsey On May 29, 2012, at 4:49 PM, Paul Hoadley wrote: On 30/05/2012, at 9:11 AM, Ramsey Gurley wrote: Oh, sorry. Misread the method name. I read it as editPageWithEntityNamed. Yes, your object should exist. What's the stack trace again? May 30 09:13:20 SurvStarAdmin[60371] WARN NSLog (CreateOrganisation) - com.webobjects.appserver._private.WOComponentRequestHandler: Exception occurred while handling request: java.lang.IllegalStateException: Destination entity could not be retrieved from EO of bindings. Either set the sourceObject to an EO, provide the sourceEntityName and relationshipKey, the destinationEntityName or the possibleChoices binding. [2012-5-30 9:13:20 CST] WorkerThread0 java.lang.IllegalStateException: Destination entity could not be retrieved from EO of bindings. Either set the sourceObject to an EO, provide the sourceEntityName and relationshipKey, the destinationEntityName or the possibleChoices binding. at er.extensions.components.ERXArrayChooser._destinationEntityName(ERXArrayChooser.java:263) at er.extensions.components.ERXArrayChooser.destinationEntityName(ERXArrayChooser.java:234) at er.extensions.components.ERXArrayChooser.dataSource(ERXArrayChooser.java:317) at er.extensions.components.ERXArrayChooser.theList(ERXArrayChooser.java:420) at er.extensions.woextensions.WOToOneRelationship.theList(WOToOneRelationship.java:127) This is a different entity to the one I was discussing earlier in the thread, though it's basically the same situation: an attribute using an enum as a custom type. Incidentally, it's the same issue I'm discussing in another thread: this attribute is added to the entity at runtime. I'm pretty sure that's all working fine, as I can display the enum value in an inspect page, and I can edit the enum value in a normal edit page—everything goes to and from the DB as intended. It's just the wizard creation page that's got me stumped. I don't have any additional rules specific for creation, just the ones described in your talk for the edit task using ERD2WEditToOneRelationship. -- Paul. http://logicsquad.net/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: ERJaveMail
This is only what I got in emailPattern in ERJavaMail properties: ^.*?@.*$ Is this what you are having to as default? Cheers - Original Message - From: Mike Schrag To: Ron X Cc: WebObjects Development Sent: Tuesday, May 29, 2012 9:19 PM Subject: Re: ERJaveMail my guess is that your regex pattern for er.javamail.emailPattern doesn't work. i'm not even going to try debugging that one, though. what's wrong with the pattern that's built into erjavamail? On May 29, 2012, at 2:43 AM, Ron X ron.x.by...@gmail.com wrote: hi, i have some strange error on application start: WARN 38.33 MB used/42.73 MB free [ProcessChangesQueue] (ERXNSLogLog4jBridge.java:43) - A fatal exception occurred: When 'er.javamail.centralize' is true (default), all outgoing mails will get sent to 'er.javamail.adminEmail' instead of the normal TO addresses, but you did not provide a valid email for that property. [2012-5-28 23:40:30 PDT] ProcessChangesQueue java.lang.IllegalArgumentException: When 'er.javamail.centralize' is true (default), all outgoing mails will get sent to 'er.javamail.adminEmail' instead of the normal TO addresses, but you did not provide a valid email for that property. at er.javamail.ERJavaMail.initializeFrameworkFromSystemProperties(ERJavaMail.java:132) at er.javamail.ERJavaMail.finishInitialization(ERJavaMail.java:113) at er.extensions.ERXFrameworkPrincipal$Observer.willFinishInitialization(ERXFrameworkPrincipal.java:97) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) but i have ### ERJavaMail er.javamail.centralize = true er.javamail.smtpHost = localhost er.javamail.defaultEncoding = UTF-8 er.javamail.emailPattern = ^[a-zA-Z0-9!#$%'*+\\-/=?^_`{|}~]+(\\.[a-zA-Z0-9!#$%'*+\\-/=?^_`{|}~]+)*@[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9]){0,1}((\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9]){0,1})*\\.[a-zA-Z]{2,6}){1,1}$ er.javamail.adminEmail = admin@localhost.local in my property file ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com This email sent to msch...@pobox.com -- ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/chng34%40gmail.com This email sent to chn...@gmail.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com