WOLips Problem Occured
Hello, List I have problems with my Eclipse IDE (3.3.2) with WOLips 3.3.5047 Every time I configure frameworks it shows me Problem Occured error message: } WOLips Include Files Updates } Attempted to beginRule: R/, does not match outer scope rule: P/Rujel I don't get what it means. But as a result those frameworks are not included in classpath files when I ant-build my project... Also I suspect that when I update my frameworks and than run my project it still enployes old frameworks (I wonder where he stores them). For more info: I also include those frameworks projects into my buildPath. Gennady ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: EOFetchSpecification text to number conversion
On 7 Jul 2008, at 18:55, Chuck Hill wrote: I can't think of any. This is yet another reason to never use qualifierWithQualifierFormat. If you had used EOKeyValueQualifier, you would not have this problem. Just say no to magic strings. Does EOF again apply automatic coercion? I found this feature was lost when moving from 4.5 to 5.0. That's why I wrote http://code.google.com/p/houdah-webobjects-frameworks/source/browse/trunk/HoudahEOAccess/src/com/houdah/eoaccess/coercion/QualifierAttributeCoercion.java Pierre -- Pierre Bernard http://www.bernard-web.com/pierre http://www.houdah.com smime.p7s Description: S/MIME cryptographic signature ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: empty relationship qualifier question
Hi, Pierre! Thanks for the answer. I've actually tried using EOKeyValueQualifier(tracks, EOQualifier.QualifierOperatorEquals, NSKeyValueCoding.NullValue). It generates the following sql, which is just wrong: SELECT RTRIM(t0.artist), t0.guitarProSongId, t0.id, RTRIM(t0.title) FROM Song t0 WHERE t0.id is NULL Considering, ExistsInRelationshipQualifier - does it support sql generation (I didn't see it in its code)? On Sat, Jul 5, 2008 at 1:17 AM, Pierre Bernard [EMAIL PROTECTED] wrote: Hi! Actually, EOKeyValueQualifier(tracks, EOQualifier.QualifierOperatorEquals, NSKeyValueCoding.NullValue) should work just fine. Please report back if it doesn't. I'd like to know. An alternative - usually used only for more complex cases - would be to use the ExistsInRelationshipQualifier from my Houdah WebObjects frameworks project. Best, Pierre Bernard Houdah Software s.à r.l. On 4 Jul 2008, at 10:32, Michael Bushkov wrote: Hi, I have quite simple task, but I don't see any proper solution. The task is as follows: I have 2 entities - Song and Track. Song has a one-to-many relationship to Track (Song-tracks). And I need to fetch all songs which have no tracks. That's all - plain and simple. I've looked through the list of available qualifiers and even started to write one by myself, but it looks like an overkill for such a simple task. The straightforward solution, that I see is to cache number of tracks in Song entity (make a Song-tracksNumber field). But it looks like modifying model for implementation purposes (this however can be very effective on large datasets, because such database structure doesn't require using subqueries to find songs with no tracks). Any suggestions are greatly appreciated ) -- With best regards, Michael Bushkov ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/webobjects-dev%40houdah.com This email sent to [EMAIL PROTECTED] --- Pierre Bernard http://www.bernard-web.com/pierre http://www.houdah.com -- With best regards, Michael Bushkov ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: DB uniqueness constraints and dealing with them
A slightly modified version of Chuck's db specific stuff, for OpenBase: public class OpenBaseExInterpreter implements ExInterpreter{ private Pattern column = Pattern.compile(column \\'(.*)\\' is not unique), table = Pattern.compile(SQL\\: INSERT INTO (\\w*)); public String columnNameForUniquenessRestraintFailure( EOGeneralAdaptorException ex){ return column.matcher(ex.getMessage()).group(1); } public boolean isUniquenessRestraintFailure (EOGeneralAdaptorException ex){ return column.matcher(ex.getMessage()).find(); } public String tableNameForUniquenessRestraintFailure (EOGeneralAdaptorException ex){ return table.matcher(ex.getMessage()).group(1); } } This will extract the relevant info from OpenBase style uniqueness failure feedback, such as: ... Next exception:SQL State:42000 -- error code: 0 -- msg: ERROR - Value for column 'NAME' is not unique. SQL: INSERT INTO USER(UID, PERMISSIONS, PASSWORD, USER_ID, CONTACT_ID, NAME) VALUES (230, '7faaa000', 'sfasfdasdfasd', 39, 2, 'flor385') You can't get a restraint name because OpenBase does not use restraints to define uniqueness, but an index flag (per field). F On Jul 05, 2008, at 00:03, Chuck Hill wrote: I guess I will play show and tell too :-) It all starts in an EOEditingContext subclass, with the saveChanges method: public void saveChanges() { try { super.saveChanges(); } catch (EOGeneralAdaptorException e) { throw interpretEOGeneralAdaptorException(e); } } The exception is interpreted with /** * Examines the exception and dispatches it to one of the more specific interpret...Exception methods. * * @param theException the exception as raised from saveChanges() * @return an exception with a localized error message and a customized userInfo dictionary */ public RuntimeException interpretEOGeneralAdaptorException (EOGeneralAdaptorException theException) { /** require [valid_param] theException != null; **/ // In case we can not interpret this exception, ensure that it is returned as is. RuntimeException interpretedException = theException; if (NSExceptionAdditions.isOptimisticLockingFailure (theException)) { interpretedException = interpretOptimisticLockingFailure (theException); } else if (NSExceptionAdditions.isIntegrityConstraintViolation (theException)) { interpretedException = interpretIntegrityConstraintViolation(theException); } else if (NSExceptionAdditions.isAdaptorOperationFailureException (theException)) { int failedOperator = NSExceptionAdditions.failedAdaptorOperator(theException); switch (failedOperator) { // case EODatabaseOperation.EOAdaptorLockOperator : interpretedException = interpretLockingFailureFromException (theException); break; // This should never happen with integrity constraint violations handled above and barring model exception case EODatabaseOperation.AdaptorInsertOperator : interpretedException = interpretInsertFailureFromException(theException); break; // case EODatabaseOperation.EOAdaptorUpdateOperator : interpretedException = interpretUpdateFailureFromException(theException); break; // case EODatabaseOperation.EOAdaptorDeleteOperator : interpretedException = interpretDeleteFailureFromException(theException); break; // case EODatabaseOperation.EOAdaptorStoredProcedureOperator : interpretedException = interpretStoredProcedureFailureFromException (theException); break; default: // Later, once the other cases are implemented we can do this: //default : //interpretedException = new RuntimeException(Unknown Adaptor Operator ( + failedOperator +)); } } if (interpretedException instanceof EOFValidationException) { ((EOFValidationException) interpretedException).setOriginalException(theException); } return interpretedException; } The relevant part of this is: f (NSExceptionAdditions.isIntegrityConstraintViolation(theException)) { interpretedException = interpretIntegrityConstraintViolation(theException); } The NSExceptionAdditions class has these relevant methods: static public boolean isIntegrityConstraintViolation (EOGeneralAdaptorException exception) { /** require [valid_param] exception != null;**/ return
Re: WOCollapsibleComponentContent is broken on Leopard
It works. Thanks a lot for your help! On 7/7/08 5:12 PM, Lachlan Deck [EMAIL PROTECTED] wrote: Hi Wen, On 08/07/2008, at 3:58 AM, Xia, Wen wrote: Seems like projects with WOCollapsibleComponentContent are broken after deploying to Leopard server (works on local Leopard). Error: java.lang.ClassNotFoundException exception Reason: java.lang.ClassNotFoundException: Cannot find class or component named WOCollapsibleComponentContent in runtime or in a loadable bundle I checked the component exists in the framework, don¹t understand why it can¹t find it. Please help. Thank you. Try embedding your frameworks in the application to ensure that your runtime environment is the same as development. http://wiki.objectstyle.org/confluence/display/WOL/Tutorials http://wiki.objectstyle.org/confluence/display/WOL/Embedding+WOFrameworks with regards, -- Lachlan Deck ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
D2W and Qualifying Relationships
Hi all, I have two to-one relationships on my Routing entity: Routing - ManufacturingLine Routing - WorkCenter ManufacturingLine and WorkCenter are also related with a many-to-many: ManufacturingLine - WorkCenter On the form for Routing, I'd like to restrict the possible options on the WorkCenter popup to only the ones that are also related to the Routing's selected ManufacturingLine. Is there a way to do that by writing a rule in the d2w.d2wmodel file, or otherwise qualify the NSArray that populates the popup? I've been digging through the D2W API and I can't seem to figure it out. I think it was Guido that mentioned doing this during a between- session conversation at WOWODC this year, I just can't remember. Dave ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: D2W and Qualifying Relationships
If you have them on the same page, you need to do an Ajax call to set the manufacturingLine and than limit the other one with the restrictedChoiceKey in the rules. Never tried that though. cug On 08.07.2008, at 12:55, David Avendasora wrote: I have two to-one relationships on my Routing entity: Routing - ManufacturingLine Routing - WorkCenter ManufacturingLine and WorkCenter are also related with a many-to-many: ManufacturingLine - WorkCenter On the form for Routing, I'd like to restrict the possible options on the WorkCenter popup to only the ones that are also related to the Routing's selected ManufacturingLine. Is there a way to do that by writing a rule in the d2w.d2wmodel file, or otherwise qualify the NSArray that populates the popup? I've been digging through the D2W API and I can't seem to figure it out. I think it was Guido that mentioned doing this during a between- session conversation at WOWODC this year, I just can't remember. Dave ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/lists%40event-s.net This email sent to [EMAIL PROTECTED] -- http://www.event-s.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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
WOXMLDecoder and NSData
I am upgrading a WO Application to version 5.4 and everywhere I use WOXMLDecoder to decode a NSData object it generates a NullPointerException. It worked fine before. Any clues? Steve ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: D2W and Qualifying Relationships
restrictedChoiceKey Hmmm Ahg! WOnder. Figures. :) I was hopping for a WO-only solution. Thanks for the quick reply though! Dave On Jul 8, 2008, at 3:45 PM, Guido Neitzer wrote: If you have them on the same page, you need to do an Ajax call to set the manufacturingLine and than limit the other one with the restrictedChoiceKey in the rules. Never tried that though. cug On 08.07.2008, at 12:55, David Avendasora wrote: I have two to-one relationships on my Routing entity: Routing - ManufacturingLine Routing - WorkCenter ManufacturingLine and WorkCenter are also related with a many-to- many: ManufacturingLine - WorkCenter On the form for Routing, I'd like to restrict the possible options on the WorkCenter popup to only the ones that are also related to the Routing's selected ManufacturingLine. Is there a way to do that by writing a rule in the d2w.d2wmodel file, or otherwise qualify the NSArray that populates the popup? I've been digging through the D2W API and I can't seem to figure it out. I think it was Guido that mentioned doing this during a between- session conversation at WOWODC this year, I just can't remember. Dave ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/lists%40event-s.net This email sent to [EMAIL PROTECTED] -- http://www.event-s.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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: D2W and Qualifying Relationships
On Jul 8, 2008, at 2:09 PM, Chuck Hill wrote: On Jul 8, 2008, at 1:07 PM, David Avendasora wrote: restrictedChoiceKey Hmmm Ahg! WOnder. Figures. :) I was hopping for a WO-only solution. Thanks for the quick reply though! I thought The First Rule of D2W was D2W without Wonder is a deadlock waiting to happen I thought it was more like it's a deadlock that already happened ;-) Alan Chuck On Jul 8, 2008, at 3:45 PM, Guido Neitzer wrote: If you have them on the same page, you need to do an Ajax call to set the manufacturingLine and than limit the other one with the restrictedChoiceKey in the rules. Never tried that though. cug On 08.07.2008, at 12:55, David Avendasora wrote: I have two to-one relationships on my Routing entity: Routing - ManufacturingLine Routing - WorkCenter ManufacturingLine and WorkCenter are also related with a many-to- many: ManufacturingLine - WorkCenter On the form for Routing, I'd like to restrict the possible options on the WorkCenter popup to only the ones that are also related to the Routing's selected ManufacturingLine. Is there a way to do that by writing a rule in the d2w.d2wmodel file, or otherwise qualify the NSArray that populates the popup? I've been digging through the D2W API and I can't seem to figure it out. I think it was Guido that mentioned doing this during a between- session conversation at WOWODC this year, I just can't remember. Dave ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/lists% 40event-s.net This email sent to [EMAIL PROTECTED] -- http://www.event-s.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: http://lists.apple.com/mailman/options/webobjects-dev/chill% 40global-village.net This email sent to [EMAIL PROTECTED] -- Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/award% 40apple.com This email sent to [EMAIL PROTECTED] ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: WOXMLDecoder and NSData
Do you have a stacktrace? WO 5.4 was upgraded to use the sax2 parser. On Jul 8, 2008, at 1:05 PM, Steve Peery wrote: I am upgrading a WO Application to version 5.4 and everywhere I use WOXMLDecoder to decode a NSData object it generates a NullPointerException. It worked fine before. Any clues? Steve ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/dlee%40apple.com This email sent to [EMAIL PROTECTED] ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: D2W and Qualifying Relationships
On Jul 8, 2008, at 4:09 PM, Chuck Hill wrote: On Jul 8, 2008, at 1:07 PM, David Avendasora wrote: restrictedChoiceKey Hmmm Ahg! WOnder. Figures. :) I was hopping for a WO-only solution. Thanks for the quick reply though! I thought The First Rule of D2W was D2W without Wonder is a deadlock waiting to happen Well, I was being slightly disingenuous. Replace W with JC and you'll be closer to the truth of the question. But I figured if there was a way to do it in D2W then I could do it in D2JC since they use the same rule engine and I was far more likely to get a response on a D2W question. And, for what it's worth, I haven't run into any deadlock problems with D2JC. Time to dig through the Wonder D2W stuff and figure out if I can apply it to D2JC too... Don't hold your breath though. :-) Dave Chuck On Jul 8, 2008, at 3:45 PM, Guido Neitzer wrote: If you have them on the same page, you need to do an Ajax call to set the manufacturingLine and than limit the other one with the restrictedChoiceKey in the rules. Never tried that though. cug On 08.07.2008, at 12:55, David Avendasora wrote: I have two to-one relationships on my Routing entity: Routing - ManufacturingLine Routing - WorkCenter ManufacturingLine and WorkCenter are also related with a many-to- many: ManufacturingLine - WorkCenter On the form for Routing, I'd like to restrict the possible options on the WorkCenter popup to only the ones that are also related to the Routing's selected ManufacturingLine. Is there a way to do that by writing a rule in the d2w.d2wmodel file, or otherwise qualify the NSArray that populates the popup? I've been digging through the D2W API and I can't seem to figure it out. I think it was Guido that mentioned doing this during a between- session conversation at WOWODC this year, I just can't remember. Dave ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/lists%40event-s.net This email sent to [EMAIL PROTECTED] -- http://www.event-s.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: http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to [EMAIL PROTECTED] -- Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: D2W and Qualifying Relationships
On 08.07.2008, at 14:18, Alan Ward wrote: I thought The First Rule of D2W was D2W without Wonder is a deadlock waiting to happen I thought it was more like it's a deadlock that already happened ;-) That's probably pretty close ... cug -- http://www.event-s.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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: D2W and Qualifying Relationships
On Jul 8, 2008, at 1:24 PM, David Avendasora wrote: On Jul 8, 2008, at 4:09 PM, Chuck Hill wrote: On Jul 8, 2008, at 1:07 PM, David Avendasora wrote: restrictedChoiceKey Hmmm Ahg! WOnder. Figures. :) I was hopping for a WO-only solution. Thanks for the quick reply though! I thought The First Rule of D2W was D2W without Wonder is a deadlock waiting to happen Well, I was being slightly disingenuous. Replace W with JC and you'll be closer to the truth of the question. Sigh. And here I thought you were branching out into new areas of pain! :-P But I figured if there was a way to do it in D2W then I could do it in D2JC since they use the same rule engine and I was far more likely to get a response on a D2W question. And, for what it's worth, I haven't run into any deadlock problems with D2JC. Time to dig through the Wonder D2W stuff and figure out if I can apply it to D2JC too... Don't hold your breath though. :-) Dave Chuck On Jul 8, 2008, at 3:45 PM, Guido Neitzer wrote: If you have them on the same page, you need to do an Ajax call to set the manufacturingLine and than limit the other one with the restrictedChoiceKey in the rules. Never tried that though. cug On 08.07.2008, at 12:55, David Avendasora wrote: I have two to-one relationships on my Routing entity: Routing - ManufacturingLine Routing - WorkCenter ManufacturingLine and WorkCenter are also related with a many-to- many: ManufacturingLine - WorkCenter On the form for Routing, I'd like to restrict the possible options on the WorkCenter popup to only the ones that are also related to the Routing's selected ManufacturingLine. Is there a way to do that by writing a rule in the d2w.d2wmodel file, or otherwise qualify the NSArray that populates the popup? I've been digging through the D2W API and I can't seem to figure it out. I think it was Guido that mentioned doing this during a between- session conversation at WOWODC this year, I just can't remember. Dave ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/lists%40event-s.net This email sent to [EMAIL PROTECTED] -- http://www.event-s.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: http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to [EMAIL PROTECTED] -- Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects -- Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: WOXMLDecoder and NSData
Speaking of using the SAX parser (and other XML apis), is there a good reason WebObjects contains a bunch of 3rd party libraries in the java- xml .jar? Couldn't these just be expressed as dependencies in the Maven project? Including specific versions of these libraries in one of the WO libraries means that they can potentially conflict with later versions we might want to use in our applications and we can't easily provide more recent versions. Cheers, Jake On 08/07/2008, at 9:19 PM, Daryl Lee wrote: Do you have a stacktrace? WO 5.4 was upgraded to use the sax2 parser. On Jul 8, 2008, at 1:05 PM, Steve Peery wrote: I am upgrading a WO Application to version 5.4 and everywhere I use WOXMLDecoder to decode a NSData object it generates a NullPointerException. It worked fine before. Any clues? Steve ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/dlee %40apple.com This email sent to [EMAIL PROTECTED] ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/jmacmullin%40mac.com This email sent to [EMAIL PROTECTED] ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: DB uniqueness constraints and dealing with them
Uhm sorry, that was partly bad. Matcher will not find any groups unless one of the matching methods is invoked on it first... The working version of the code is: public class OpenBaseExInterpreter implements ExInterpreter{ private Pattern column = Pattern.compile(column \\'(.*)\\' is not unique), table = Pattern.compile(SQL\\: INSERT INTO (\\w*)); public String columnNameForUniquenessConstraintFailure( EOGeneralAdaptorException ex){ Matcher m = column.matcher(ex.getMessage()); if(m.find()) return m.group(1); else throw new IllegalStateException(); } public boolean isUniquenessConstraintFailure (EOGeneralAdaptorException ex){ return column.matcher(ex.getMessage()).find(); } public String tableNameForUniquenessConstraintFailure (EOGeneralAdaptorException ex){ Matcher m = table.matcher(ex.getMessage()); if(m.find()) return m.group(1); else throw new IllegalStateException(); } } And a lesson to me to test first, post later. F On Jul 08, 2008, at 11:14, Florijan Stamenkovic wrote: A slightly modified version of Chuck's db specific stuff, for OpenBase: public class OpenBaseExInterpreter implements ExInterpreter{ private Pattern column = Pattern.compile(column \\'(.*)\\' is not unique), table = Pattern.compile(SQL\\: INSERT INTO (\\w*)); public String columnNameForUniquenessRestraintFailure( EOGeneralAdaptorException ex){ return column.matcher(ex.getMessage()).group(1); } public boolean isUniquenessRestraintFailure (EOGeneralAdaptorException ex){ return column.matcher(ex.getMessage()).find(); } public String tableNameForUniquenessRestraintFailure (EOGeneralAdaptorException ex){ return table.matcher(ex.getMessage()).group(1); } } This will extract the relevant info from OpenBase style uniqueness failure feedback, such as: ... Next exception:SQL State:42000 -- error code: 0 -- msg: ERROR - Value for column 'NAME' is not unique. SQL: INSERT INTO USER(UID, PERMISSIONS, PASSWORD, USER_ID, CONTACT_ID, NAME) VALUES (230, '7faaa000', 'sfasfdasdfasd', 39, 2, 'flor385') You can't get a restraint name because OpenBase does not use restraints to define uniqueness, but an index flag (per field). F On Jul 05, 2008, at 00:03, Chuck Hill wrote: I guess I will play show and tell too :-) It all starts in an EOEditingContext subclass, with the saveChanges method: public void saveChanges() { try { super.saveChanges(); } catch (EOGeneralAdaptorException e) { throw interpretEOGeneralAdaptorException(e); } } The exception is interpreted with /** * Examines the exception and dispatches it to one of the more specific interpret...Exception methods. * * @param theException the exception as raised from saveChanges() * @return an exception with a localized error message and a customized userInfo dictionary */ public RuntimeException interpretEOGeneralAdaptorException (EOGeneralAdaptorException theException) { /** require [valid_param] theException != null; **/ // In case we can not interpret this exception, ensure that it is returned as is. RuntimeException interpretedException = theException; if (NSExceptionAdditions.isOptimisticLockingFailure (theException)) { interpretedException = interpretOptimisticLockingFailure(theException); } else if (NSExceptionAdditions.isIntegrityConstraintViolation(theException)) { interpretedException = interpretIntegrityConstraintViolation(theException); } else if (NSExceptionAdditions.isAdaptorOperationFailureException (theException)) { int failedOperator = NSExceptionAdditions.failedAdaptorOperator(theException); switch (failedOperator) { // case EODatabaseOperation.EOAdaptorLockOperator : interpretedException = interpretLockingFailureFromException(theException); break; // This should never happen with integrity constraint violations handled above and barring model exception case EODatabaseOperation.AdaptorInsertOperator : interpretedException = interpretInsertFailureFromException(theException); break; // case EODatabaseOperation.EOAdaptorUpdateOperator : interpretedException = interpretUpdateFailureFromException(theException); break; //
Re: WOXMLDecoder and NSData
On Jul 8, 2008, at 1:27 PM, Jake MacMullin wrote: Speaking of using the SAX parser (and other XML apis), is there a good reason WebObjects contains a bunch of 3rd party libraries in the java-xml .jar? Couldn't these just be expressed as dependencies in the Maven project? If everyone was using Maven, maybe this would be less of an issue. Due to version/API dependencies on specific versions of libraries (Axis for instance), we've had bundle things this way. Including specific versions of these libraries in one of the WO libraries means that they can potentially conflict with later versions we might want to use in our applications and we can't easily provide more recent versions. We've been discussing ways to allow people to insert their custom classpaths early on in the bootstrap process. Perhaps there could be some custom properties passed to the WOBootstrapper. Cheers, Jake On 08/07/2008, at 9:19 PM, Daryl Lee wrote: Do you have a stacktrace? WO 5.4 was upgraded to use the sax2 parser. On Jul 8, 2008, at 1:05 PM, Steve Peery wrote: I am upgrading a WO Application to version 5.4 and everywhere I use WOXMLDecoder to decode a NSData object it generates a NullPointerException. It worked fine before. Any clues? Steve ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/dlee%40apple.com This email sent to [EMAIL PROTECTED] ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/jmacmullin%40mac.com This email sent to [EMAIL PROTECTED] ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: WOXMLDecoder and NSData
On Jul 8, 2008, at 3:26 PM, Daryl Lee wrote: On Jul 8, 2008, at 1:27 PM, Jake MacMullin wrote: Speaking of using the SAX parser (and other XML apis), is there a good reason WebObjects contains a bunch of 3rd party libraries in the java-xml .jar? Couldn't these just be expressed as dependencies in the Maven project? If everyone was using Maven, maybe this would be less of an issue. Due to version/API dependencies on specific versions of libraries (Axis for instance), we've had bundle things this way. Could they go in /Library/WebObjects/Extensions? Though that would leave build time classpath problems... Including specific versions of these libraries in one of the WO libraries means that they can potentially conflict with later versions we might want to use in our applications and we can't easily provide more recent versions. We've been discussing ways to allow people to insert their custom classpaths early on in the bootstrap process. Perhaps there could be some custom properties passed to the WOBootstrapper. Cheers, Jake On 08/07/2008, at 9:19 PM, Daryl Lee wrote: Do you have a stacktrace? WO 5.4 was upgraded to use the sax2 parser. On Jul 8, 2008, at 1:05 PM, Steve Peery wrote: I am upgrading a WO Application to version 5.4 and everywhere I use WOXMLDecoder to decode a NSData object it generates a NullPointerException. It worked fine before. Any clues? Steve ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/dlee%40apple.com This email sent to [EMAIL PROTECTED] ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/jmacmullin%40mac.com This email sent to [EMAIL PROTECTED] ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to [EMAIL PROTECTED] -- Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
SimpleDateFormat vs [Deprecated] NSTimestampFormatter
Hello list! As mentioned in WO 5.4 documentation NSTimestampFormatter class is now deprecated. They recommend using java.text.SimpleDateFormat instead. Pattern formats for NSTimestampFormatter and SimpleDateFormat a different. But when binding WOString and WOTextFiend it still takes patterns for dateFormat in old NSTimestampFormatter style. I want to store and reuse some global setting for date format pattern. But now I have to either use different patterns for WOD bindings and programmatic use or rely on deprecated NSTimestampFormatter and get warnings each time. Gennady ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: SimpleDateFormat vs [Deprecated] NSTimestampFormatter
On Jul 8, 2008, at 3:59 PM, Gennady Kushnir wrote: Hello list! As mentioned in WO 5.4 documentation NSTimestampFormatter class is now deprecated. They recommend using java.text.SimpleDateFormat instead. Pattern formats for NSTimestampFormatter and SimpleDateFormat a different. But when binding WOString and WOTextFiend it still takes patterns for dateFormat in old NSTimestampFormatter style. I want to store and reuse some global setting for date format pattern. But now I have to either use different patterns for WOD bindings and programmatic use or rely on deprecated NSTimestampFormatter and get warnings each time. NSTimestampFormatter also understands the SimpleDateFormat pattern symbols. Just use the SimpleDateFormat symbols for both. Also note that unlike NSTimestampFormatter, SimpleDateFormat is not thread safe. At least NSTimestampFormatter is not documented to be non-thread safe. Chuck -- Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: empty relationship qualifier question
Очень похоже на ошибку в модели. Check your relationship tracks to be toMany is NULL behavior is usually for toOne relationships. 2008/7/8 Michael Bushkov [EMAIL PROTECTED]: Hi, Pierre! Thanks for the answer. I've actually tried using EOKeyValueQualifier(tracks, EOQualifier.QualifierOperatorEquals, NSKeyValueCoding.NullValue). It generates the following sql, which is just wrong: SELECT RTRIM(t0.artist), t0.guitarProSongId, t0.id, RTRIM(t0.title) FROM Song t0 WHERE t0.id is NULL ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: SimpleDateFormat vs [Deprecated] NSTimestampFormatter
NSTimestampFormatter also understands the SimpleDateFormat pattern symbols. Just use the SimpleDateFormat symbols for both. Does it work only for 5.4 or also for earler versions of WO? Gennady 2008/7/9 Chuck Hill [EMAIL PROTECTED]: On Jul 8, 2008, at 3:59 PM, Gennady Kushnir wrote: Hello list! As mentioned in WO 5.4 documentation NSTimestampFormatter class is now deprecated. They recommend using java.text.SimpleDateFormat instead. Pattern formats for NSTimestampFormatter and SimpleDateFormat a different. But when binding WOString and WOTextFiend it still takes patterns for dateFormat in old NSTimestampFormatter style. I want to store and reuse some global setting for date format pattern. But now I have to either use different patterns for WOD bindings and programmatic use or rely on deprecated NSTimestampFormatter and get warnings each time. NSTimestampFormatter also understands the SimpleDateFormat pattern symbols. Just use the SimpleDateFormat symbols for both. Also note that unlike NSTimestampFormatter, SimpleDateFormat is not thread safe. At least NSTimestampFormatter is not documented to be non-thread safe. Chuck -- Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: SimpleDateFormat vs [Deprecated] NSTimestampFormatter
On Jul 8, 2008, at 4:10 PM, Gennady Kushnir wrote: NSTimestampFormatter also understands the SimpleDateFormat pattern symbols. Just use the SimpleDateFormat symbols for both. Does it work only for 5.4 or also for earler versions of WO? NSTimestampFormatter has always understood the SimpleDateFormat pattern symbols. This is not new. Gennady 2008/7/9 Chuck Hill [EMAIL PROTECTED]: On Jul 8, 2008, at 3:59 PM, Gennady Kushnir wrote: Hello list! As mentioned in WO 5.4 documentation NSTimestampFormatter class is now deprecated. They recommend using java.text.SimpleDateFormat instead. Pattern formats for NSTimestampFormatter and SimpleDateFormat a different. But when binding WOString and WOTextFiend it still takes patterns for dateFormat in old NSTimestampFormatter style. I want to store and reuse some global setting for date format pattern. But now I have to either use different patterns for WOD bindings and programmatic use or rely on deprecated NSTimestampFormatter and get warnings each time. NSTimestampFormatter also understands the SimpleDateFormat pattern symbols. Just use the SimpleDateFormat symbols for both. Also note that unlike NSTimestampFormatter, SimpleDateFormat is not thread safe. At least NSTimestampFormatter is not documented to be non- thread safe. Chuck -- Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects -- Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: WOLips Problem Occured
On 08/07/2008, at 5:03 PM, Gennady Kushnir wrote: Hello, List I have problems with my Eclipse IDE (3.3.2) with WOLips 3.3.5047 Every time I configure frameworks it shows me Problem Occured error message: } WOLips Include Files Updates } Attempted to beginRule: R/, does not match outer scope rule: P/ Rujel I don't get what it means. But as a result those frameworks are not included in classpath files when I ant-build my project... Also I suspect that when I update my frameworks and than run my project it still enployes old frameworks (I wonder where he stores them). For more info: I also include those frameworks projects into my buildPath. Sounds annoying. You could experiment by either creating a new project and/or new workspace and see if the problem persists. with regards, -- Lachlan Deck ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Maven Optimism
Last week, I posted a thread titled Maven Skepticism to the WOProject list. It was about my misgivings about Maven, and the issues I was having getting started with it. So the last few days I've been playing with Maven. I am no longer skeptical. So I thought I would post about my newfound optimism with Maven. I feel I owe it to Henrique and Lachlan for their help. (Thanks guys) I also think the current maven evangelism documentation is written a little too formally to be comprehensive. Background: I've been programming since I was 12, which means nearly 30 years now. I have a saying: Every generation thinks they invented sex, and every generation tries to reinvent make. Consequently, I hate Ant. I think its implementation is completely fubar. I've ranted about it before. I also hate our current build process at work, which is basically to hope/pray that the ant build we do nightly for deployment/packaging matches the developer builds we do in Eclipse. Now that I've finally gotten my team on svn, its time to fix the build process and reorganize our projects. Hence the interest in Maven, basically precipitated by Apple publishing their nightly builds as a Maven repository. To get started with Maven, I sat down with the Wonder sources, and tweaked the existing pom.xml files that had been broken since the great re-org to work. (pom.xml are the only and only type of file that Maven uses for building) What I found: Maven is a lot closer to how I would design a build system then it is to Ant. In that, its a lot more similar to how typical modern IDEs work: If Maven sees a .java file in the right place, it will compile it and put in in the jar. If it sees a file in the right place, it will treat it as a resource file, and put it in the appropriate location. In short, for most projects, you don't have to specify a bunch of stuff, you just have to put them in the right place. Additionally, unlike ant builds, there's very little redundant information in a maven pom file. To give you some examples, for the current Wonder Ant builds, between build.xml files, generic.xml, build.properties files, .classpath and .patternset files, there are 5320 lines of build configuration information in the current Wonder build. The equivalent pom files are 2447 lines, which is not only more efficient, but includes more information to help avoid the jarmeggedon/jarhell problem. Jarmeggedon/jarhell It seems like one of the greatest tools in a Java programmers arsenal is Google, or rather, 3rd party libraries. If you look at the Wonder source, there are 65 different .jar files included, about 1 per project on average. Many of these jar files are duplicates of each other, or even worse, different versions of the same jar, like there is a version of commons-logging.jar in ERJGroupsSynchronizer and another one in EROpenID. Meanwhile, commons-logging is up to version 1.1.1. To my way of thinking, the Wonder ant builds are already broken if EROpenID is building against commons-logging-1.03, but then deployed with 1.1.1... Maven's solution goes by the fancy name of dependency management. What that means in practice is that most of the information in the pom.xml is just a list of what other projects in your source tree a given project depends on, and what jars you need by name/version. In return, maven: 1. Finds and downloads any jars you're missing. 2. Finds and downloads any jars that those jars use! 3. Builds any inter-project dependencies. 4. Generates the correct classpath. 5. Packages jars as needed in the appropriate place. A dependency looks like the following: dependency groupIdcommons-logging/groupId artifactIdcommons-logging/artifactId version1.1.1/version /dependency Most of the pom.xml file consists of these dependencies, and the site http://mvnrepository.com will even generate them for you. Moreover, if you put a dependencyManagement section in your top level pom as follows: dependencyManagement dependencies dependency groupIdcommons-logging/groupId artifactIdcommons-logging/artifactId version1.1.1/version /dependency /dependencies /dependencyManagement Then you can leave out the version specifier for your individual projects entirely: dependency groupIdcommons-logging/groupId artifactIdcommons-logging/artifactId /dependency Which means you only have to change a single file when you want to use version 1.1.2 or something. It works unbelievably well. How well? Well, in the course of
Re: EOFetchSpecification text to number conversion
On 08/07/2008, at 6:24 PM, Pierre Bernard wrote: On 7 Jul 2008, at 18:55, Chuck Hill wrote: I can't think of any. This is yet another reason to never use qualifierWithQualifierFormat. If you had used EOKeyValueQualifier, you would not have this problem. Just say no to magic strings. Does EOF again apply automatic coercion? I didn't allow my friend jad to talk for very long, but he did appear to mention something along those lines - though I wouldn't know how well it could be relied upon without actually testing. I found this feature was lost when moving from 4.5 to 5.0. That's why I wrote http://code.google.com/p/houdah-webobjects-frameworks/source/browse/trunk/HoudahEOAccess/src/com/houdah/eoaccess/coercion/QualifierAttributeCoercion.java You'd be in a better position, I'd imagine, to compare the two outcomes... assuming you've got unit tests :-) with regards, -- Lachlan Deck ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: Maven Optimism
On 09/07/2008, at 10:05 AM, Pierce T.Wetter III wrote: ... So I thought I would post about my newfound optimism with Maven. I feel I owe it to Henrique and Lachlan for their help. (Thanks guys) I also think the current maven evangelism documentation is written a little too formally to be comprehensive. ... To get started with Maven, I sat down with the Wonder sources, and tweaked the existing pom.xml files that had been broken since the great re-org to work. (pom.xml are the only and only type of file that Maven uses for building) Not quite the only, but the primary. i.e., in many cases nothing else is needed - but it can be supplemented by profiles.xml, settings.xml, assemblies and so forth. ... Jarmeggedon/jarhell It seems like one of the greatest tools in a Java programmers arsenal is Google, or rather, 3rd party libraries. If you look at the Wonder source, there are 65 different .jar files included, about 1 per project on average. Many of these jar files are duplicates of each other, or even worse, different versions of the same jar, like there is a version of commons-logging.jar in ERJGroupsSynchronizer and another one in EROpenID. Meanwhile, commons-logging is up to version 1.1.1. To be fair, this is not so much a problem with ant per-se. It just means that someone hasn't gone to the trouble of putting shared jars in a shared location and bundled with the app upon build. But certainly maven does help reduce redundancy (e.g., not having to declare a lib dependency both in ant + eclipse). Care needs to be taken with both systems of course to ensure that what you get in the build is what's expected. Andrus and Henrique have both commented on this. To my way of thinking, the Wonder ant builds are already broken if EROpenID is building against commons-logging-1.03, but then deployed with 1.1.1... Maven's solution goes by the fancy name of dependency management. What that means in practice is that most of the information in the pom.xml is just a list of what other projects in your source tree a given project depends on, and what jars you need by name/version. In return, maven: 1. Finds and downloads any jars you're missing. Naturally, not every jar in the world is available by default means. So defining additional repositories is sometimes needed (e.g., for woproject stuff). ... I have a ways to go with my maven knowledge, but given that I was able to get Wonder building without really knowing that much about mvn, and without knowing all the ins-outs of the Wonder interelationships, I think that speaks well for Maven. there's lots to learn for sure and there's lots of possibilities available (via plugins) which I like. It's worth saying, however, Don't throw caution to the wind. It's pretty cool, sure, but FWIW I'm still keeping my eyes and ears open given the experiences from both Henrique and Andrus - both of whom have been in the maven game longer than I. with regards, -- Lachlan Deck ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: Maven Optimism
Many of these jar files are duplicates of each other, or even worse, different versions of the same jar, like there is a version of commons-logging.jar in ERJGroupsSynchronizer and another one in EROpenID. Meanwhile, commons-logging is up to version 1.1.1. To my way of thinking, the Wonder ant builds are already broken if EROpenID is building against commons-logging-1.03, but then deployed with 1.1.1... It works unbelievably well. How well? Well, in the course of setting up pom.xml files for Wonder, I found out that Wonder was missing a secondary dependency, because it used a certain jar file, which used another jar file which wasn't included. Please log bugs in the Wonder Jira for problems like this that you find. 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
NPE on project import
I asked about this last week on the WOLips list, but that was maybe the wrong place. I have eclipse 3.3.2 and the newest stable wolips (3.3.5311) on two machines (a powermac G5, and a Mac Book Pro), both still running Tiger. I have a project on my G5 that I need to import into eclipse on my laptop, but the import operation fails - it throws a NullPointerException. Subsequently, the project won't open; it just throws a different NPE. There was a thread (That dreaded eclipse NPE again) on this list (around a month ago) about this issue, but there was no resolution. Has anyone else experienced this? Would you think there's something strange about my project that's causing this? Here's what appears in the exported Error Log from the failed import (I'll show the trace from the failed project open after that): -- !ENTRY org.eclipse.core.resources 4 2 2008-07-08 22:16:02.020 !MESSAGE Problems occurred when invoking code from plug-in: org.eclipse.core.resources. !STACK 0 java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.util.HashtableOfObjectToInt.get (HashtableOfObjectToInt.java:71) at org.eclipse.jdt.internal.core.JavaModelManager $VariablesAndContainersSaveHelper.saveNewId(JavaModelManager.java:3453) at org.eclipse.jdt.internal.core.JavaModelManager $VariablesAndContainersSaveHelper.saveClasspathEntry (JavaModelManager.java:3407) at org.eclipse.jdt.internal.core.JavaModelManager $VariablesAndContainersSaveHelper.saveClasspathEntries (JavaModelManager.java:3402) at org.eclipse.jdt.internal.core.JavaModelManager $VariablesAndContainersSaveHelper.saveContainers (JavaModelManager.java:3444) at org.eclipse.jdt.internal.core.JavaModelManager $VariablesAndContainersSaveHelper.saveProjects(JavaModelManager.java: 3508) at org.eclipse.jdt.internal.core.JavaModelManager $VariablesAndContainersSaveHelper.save(JavaModelManager.java:3336) at org.eclipse.jdt.internal.core.JavaModelManager.saveVariablesAndContainer s(JavaModelManager.java:3239) at org.eclipse.jdt.internal.core.JavaModelManager.saving (JavaModelManager.java:3551) at org.eclipse.core.internal.resources.SaveManager.executeLifecycle (SaveManager.java:343) at org.eclipse.core.internal.resources.SaveManager$1.run (SaveManager.java:160) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.internal.resources.SaveManager.broadcastLifecycle (SaveManager.java:163) at org.eclipse.core.internal.resources.SaveManager.save (SaveManager.java:982) at org.eclipse.core.internal.resources.DelayedSnapshotJob.run (DelayedSnapshotJob.java:44) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) -- And here's what I see when I try to open the project: -- !ENTRY org.eclipse.jface 4 2 2008-07-08 22:16:39.697 !MESSAGE Problems occurred when invoking code from plug-in: org.eclipse.jface. !STACK 0 java.lang.NullPointerException at org.eclipse.jdt.internal.ui.packageview.ClassPathContainer.getChildren (ClassPathContainer.java:138) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.g etContainerPackageFragmentRoots(PackageExplorerContentProvider.java:334) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.g etChildren(PackageExplorerContentProvider.java:269) at org.objectstyle.wolips.jdt.ui.WOPackageExplorerContentProvider.getChildr en(WOPackageExplorerContentProvider.java:105) at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren (AbstractTreeViewer.java:1320) at org.eclipse.jface.viewers.TreeViewer.getRawChildren (TreeViewer.java:378) at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.hasFilteredChi ldren(ProblemTreeViewer.java:250) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart $PackageExplorerProblemTreeViewer.isFiltered(PackageExplorerPart.java: 287) at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.filter (ProblemTreeViewer.java:269) at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.getFilteredChi ldren(ProblemTreeViewer.java:258) at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren (AbstractTreeViewer.java:581) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run (AbstractTreeViewer.java:778) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java: 67) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren (AbstractTreeViewer.java:755) at org.eclipse.jface.viewers.TreeViewer.createChildren (TreeViewer.java:627) at org.eclipse.jface.viewers.AbstractTreeViewer.setExpandedState (AbstractTreeViewer.java:2363) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handl eDoubleClick(PackageExplorerActionGroup.java:299) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart $4.doubleClick(PackageExplorerPart.java:607) at org.eclipse.jface.viewers.StructuredViewer$1.run (StructuredViewer.java:799) at
Re: Maven Optimism
Am 09.07.2008 um 02:05 schrieb Pierce T.Wetter III: To give you some examples, for the current Wonder Ant builds, between build.xml files, generic.xml, build.properties files, .classpath and .patternset files, there are 5320 lines of build configuration information in the current Wonder build. The equivalent pom files are 2447 lines, which is not only more efficient, but includes more information to help avoid the jarmeggedon/jarhell problem. Rubbish. First, the build files are *way* lighter: macbook:build ak$ wc build-doc.xml build.xml default.properties ~/ Wonder/build.xml generic.xml 158 3837291 build-doc.xml 8142168 40453 build.xml 23 64 524 default.properties 88 2413358 /Volumes/Home/Wonder/build.xml 5021547 24262 generic.xml 15854403 75888 total All other files are simply a convenience in case some nut wants to build the individual jars. In particular, all individual build files are only symlinks to Build/build/build-type.xml and derive their values from a build.properties in that directory. Also, you shouldn't *really* count the ~/Wonder/build.xml which is again only a convenience that allows you to build only the stages you want without using ant -f Build/build/generic.xml foo.bar foo.baz These 1500 lines build *all* of Wonder in the way you specify, with the values you specify and the order you specify. *And* they allow you to specify your own builds with just a build property and a symlink to a build file. You could also use includes or or add your own customizations, but the tasks they do are very light. Attached below is an example. Second, the individual build files build way more projects: macbook:Wonder ak$ find . -name build.xml|wc 67 672775 macbook:Wonder ak$ find . -name pom.xml|wc 56 562121 So while the difference is only 600 lines: macbook:Wonder ak$ wc `find . -name pom.xml`|tail -1 21522438 66007 total It's still more than zero (if someone would consider this a measure at all). Thirdly from what I've seen, someone needs to change all these files whenever we bump a version. All of Ulrichs commits so far where these xml fixes. All *I* need to do is set one property. Fourth, adding a project typically requires five lines in Build/build/ build.xml to add it to the correct group and some props. I might consider moving these props from the build file to a build.properties and making Build/build/build.xml only specify the inter-related deps. I'll grant you one point for the commons-logging versions, but I use neither ERJGroups or EROpenID. If I were and I'd be bothered, I'd figure out a way to keep them using only one. So far we've seen that maven is neither more terse nor more powerful (at least in a way that would mean something to me). The other issues I have with it is that I actually *need* the flexibility in deployment structure. In some projects I *don't* want all-embedded builds as that stuff goes out of hand with 7 apps*all the frameworks. The resulting release tops 250M. So I want some of them embed only some jars. Show me how this works with maven *without* writing any goals or mojos. So in summary, maven may or may not be nice. But I've been building Wonder with the build files for 7 years now and they haven't really changed a lot in this time. They do the roughly the same as some 20MB tool chain where you *still* have to write java plugins for. I'll leave the conclusions to you. Cheers, Anjo Example: project name=FrameworkBuild default=all basedir=. xmlproperty file=.project/ property name=project.name value=${projectDescription.name} / property file=build.properties / target name=clean ant antFile=Build/build/build.xml target=$ {project.name}.all dir=../../../ property name=build.action value=clean / /ant /target target name=build ant antFile=Build/build/build.xml target=$ {project.name}.all dir=../../../ property name=build.action value=build / /ant /target target name=install ant antFile=Build/build/build.xml target=$ {project.name}.all dir=../../../ property name=build.action value=install / /ant /target target name=web ant antFile=Build/build/build.xml target=$ {project.name}.all dir=../../../ property name=build.action value=web / /ant /target target name=all depends=clean, build, install, web / /project ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: Maven Optimism
Am 09.07.2008 um 06:16 schrieb Anjo Krank: Am 09.07.2008 um 02:05 schrieb Pierce T.Wetter III: To give you some examples, for the current Wonder Ant builds, between build.xml files, generic.xml, build.properties files, .classpath and .patternset files, there are 5320 lines of build configuration information in the current Wonder build. The equivalent pom files are 2447 lines, which is not only more efficient, but includes more information to help avoid the jarmeggedon/jarhell problem. Rubbish. Oh, I forgot: will someone please fix the maven descriptions so they dual-build Wonder with 5.4 and 5.3. I mean, like we're doing now? :P Cheers, Anjo ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
Re: Maven Optimism
Anjo: 1 Maven: 0 :-P On Jul 8, 2008, at 9:16 PM, Anjo Krank wrote: Am 09.07.2008 um 02:05 schrieb Pierce T.Wetter III: To give you some examples, for the current Wonder Ant builds, between build.xml files, generic.xml, build.properties files, .classpath and .patternset files, there are 5320 lines of build configuration information in the current Wonder build. The equivalent pom files are 2447 lines, which is not only more efficient, but includes more information to help avoid the jarmeggedon/jarhell problem. Rubbish. First, the build files are *way* lighter: macbook:build ak$ wc build-doc.xml build.xml default.properties ~/ Wonder/build.xml generic.xml 158 3837291 build-doc.xml 8142168 40453 build.xml 23 64 524 default.properties 88 2413358 /Volumes/Home/Wonder/build.xml 5021547 24262 generic.xml 15854403 75888 total All other files are simply a convenience in case some nut wants to build the individual jars. In particular, all individual build files are only symlinks to Build/build/build-type.xml and derive their values from a build.properties in that directory. Also, you shouldn't *really* count the ~/Wonder/build.xml which is again only a convenience that allows you to build only the stages you want without using ant -f Build/build/generic.xml foo.bar foo.baz These 1500 lines build *all* of Wonder in the way you specify, with the values you specify and the order you specify. *And* they allow you to specify your own builds with just a build property and a symlink to a build file. You could also use includes or or add your own customizations, but the tasks they do are very light. Attached below is an example. Second, the individual build files build way more projects: macbook:Wonder ak$ find . -name build.xml|wc 67 672775 macbook:Wonder ak$ find . -name pom.xml|wc 56 562121 So while the difference is only 600 lines: macbook:Wonder ak$ wc `find . -name pom.xml`|tail -1 21522438 66007 total It's still more than zero (if someone would consider this a measure at all). Thirdly from what I've seen, someone needs to change all these files whenever we bump a version. All of Ulrichs commits so far where these xml fixes. All *I* need to do is set one property. Fourth, adding a project typically requires five lines in Build/ build/build.xml to add it to the correct group and some props. I might consider moving these props from the build file to a build.properties and making Build/build/build.xml only specify the inter-related deps. I'll grant you one point for the commons-logging versions, but I use neither ERJGroups or EROpenID. If I were and I'd be bothered, I'd figure out a way to keep them using only one. So far we've seen that maven is neither more terse nor more powerful (at least in a way that would mean something to me). The other issues I have with it is that I actually *need* the flexibility in deployment structure. In some projects I *don't* want all-embedded builds as that stuff goes out of hand with 7 apps*all the frameworks. The resulting release tops 250M. So I want some of them embed only some jars. Show me how this works with maven *without* writing any goals or mojos. So in summary, maven may or may not be nice. But I've been building Wonder with the build files for 7 years now and they haven't really changed a lot in this time. They do the roughly the same as some 20MB tool chain where you *still* have to write java plugins for. I'll leave the conclusions to you. Cheers, Anjo Example: project name=FrameworkBuild default=all basedir=. xmlproperty file=.project/ property name=project.name value=${projectDescription.name} / property file=build.properties / target name=clean ant antFile=Build/build/build.xml target=$ {project.name}.all dir=../../../ property name=build.action value=clean / /ant /target target name=build ant antFile=Build/build/build.xml target=$ {project.name}.all dir=../../../ property name=build.action value=build / /ant /target target name=install ant antFile=Build/build/build.xml target=$ {project.name}.all dir=../../../ property name=build.action value=install / /ant /target target name=web ant antFile=Build/build/build.xml target=$ {project.name}.all dir=../../../ property name=build.action value=web / /ant /target target name=all depends=clean, build, install, web / /project ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to [EMAIL PROTECTED] --