From jdmv at mail.com Sat Jul 1 06:51:51 2000 From: jdmv at mail.com (Jean-Denis Muys-Vasovic) Date: Sat Jul 1 05:51:51 2000 Subject: C# vs Objective-C In-Reply-To: References: <3578268343.20000630175135@aresco.com> <03cc01bfe2d6$1a419e90$1501aa0a@seafax.com> Message-ID: At 18:20 -0500 6/30/00, Chris Hanson wrote: >At 4:59 PM -0400 6/30/00, Eric Hermanson wrote: >>The problem is that Apple is betting their future on a language >>(Java) which is immature, and at best has a 50/50 shot of surviving given >>the upcoming competiton. > >Who in this industry has the power to promote such a language? > >* Sun > >* Microsoft > >* AOL > >* Oracle (who has hitched their cart to Java for now) > >* IBM (who has hitched their cart to Java for now) > >* Apple (maybe, but they've hitched their cart to Java for now) Apple: probably not. Actually, Apple tried with Dylan. The Dylan project was started before Java became the craze. When the project was killed, the language design was complete, and there was an experimental implementation. Dylan, short for DYnamic LANguage, is a very high level language, very dynamic, yet designed to be easy to compile to efficient object code. It was also designed to support C-like syntaxes. It was inspired by LISP. The only that was missing, critical IMHO, is that it was not built around a virtual machine like Java. Before that, Apple took a minority share in General Magic, a company with a very ambitious project for a wide area network language called Telescript. This one was clearly ahead of its time. Back to the topic, I don't think any of the companies you listed has the power to impose a new language, with the possible exception of Microsoft. To make a success out of a programming language requires talent and luck, not power (usually: the C# attempt will prove me right or wrong). The academic community already imposed successful languages, many of which are from the Unix heritage (awk, sed, lex, yacc), but not always (Perl, Python). But all these languages, while successful, are not successful as general purpose programming languages. Jean-Denis > >* The free software community (where debates still rage about >whether object-oriented programming and graphical human interfaces >are good ideas) > >I don't think Apple has much to worry about with basing WebObjects on Java. > >-- >Chris Hanson >bDistributed.com, Inc. >cmh@bDistributed.com >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From george at xobox.com Sat Jul 1 09:50:34 2000 From: george at xobox.com (George) Date: Sat Jul 1 08:50:34 2000 Subject: popup window from browser? In-Reply-To: "Shannon Rundquist"'s message of "Fri, 30 Jun 2000 18:05:02 -0700" Message-ID: <200007011550.IAA14984@scyther.omnigroup.com> Charles, The only way I know to close a window is by using JavaScript. Close Window Take care, George Begin forwarded message: > From: clread@mindspring.com (Charles L. Read) > Date: 2000-07-01 00:27:16 -0400 > To: "Shannon Rundquist" > Subject: Re: popup window from browser? > Cc: > In-Reply-To: "Shannon Rundquist"'s message of "Fri, 30 Jun 2000 18:05:02 > -0700" > List-Id: Discussions of Apple's WebObjects > > X-Mailman-Version: 2.0beta3 > X-BeenThere: webobjects@omnigroup.com > X-Mailer: Gnus v5.6.45/Emacs 20.3 > Lines: 49 > > > Thanks! > > Once the window has popped up, is > there a way to close it from a link? > > > > > "Shannon Rundquist" writes: > > > Using target="_blank" in the .wod file on the link they click will bring > > up a new browser window. > > > > ----- Original Message ----- > > From: "Charles L. Read" > > To: > > Sent: Friday, June 30, 2000 3:38 PM > > Subject: popup window from browser? > > > > > > > > > > > > > Is there a WO component that will > > > cause a new window to be popped up > > > from your browser in order to display > > > some related content? > > > > > > > > > NOTE I've read the postings on `mouseover' > > > popups -- and that is not what I'm trying > > > to do. > > > > > > Regards, > > > Charlie > > > _______________________________________________ > > > WebObjects mailing list > > > WebObjects@omnigroup.com > > > http://www.omnigroup.com/mailman/listinfo/webobjects > > > > > > > _______________________________________________ > > WebObjects mailing list > > WebObjects@omnigroup.com > > http://www.omnigroup.com/mailman/listinfo/webobjects > > -- > Charles L. Read > PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D 70 C1 DF 5F 65 > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > > From kieren_macmillan at mac.com Sat Jul 1 10:32:56 2000 From: kieren_macmillan at mac.com (Kieren Richard MacMillan) Date: Sat Jul 1 09:32:56 2000 Subject: adding third-party classes (.jar, .zip, etc.) to a project Message-ID: Hello, all! In building my statistics program, rather than reinvent the wheel, I scoured the 'net and found the JSci.* classes, which include several necessary methods (e.g. Chi-Squared Distribution). Now I would like to add this set of classes to my WOProject. I've searched the archive, as well as read the article on the subject at . However, I still have questions, so I hope someone can help... 0. I think I have both .jar and .zip (source) files -- which is recommended? 1. My applet source is in Subproject --> ClientSideJava.subproj, but the classes are supposed to be put into Subproject --> CommonJava.subproj. Do imports across such path boundaries work automagically, or do I have to add the class to my ClientSideJava.subproj as well? 2. If I've followed the instruction in the TIL article (including setting the NSJavaUserPath in the CustomInfo.plist file and modifying the OTHER_CLASSPATH line in the Makefile.preamble file), is there anything to worry about when I move to deploy on another machine? 3. When I call the new method in my applet code, I get an error. Do I have to use "import JSci.maths.statistics.*" in my code, or should it be there automatically? 4. Any other words of advice? Thanks a (new Integer(1,000,000))!! Kieren. From Dave at Yost.com Sat Jul 1 11:41:43 2000 From: Dave at Yost.com (Dave Yost) Date: Sat Jul 1 10:41:43 2000 Subject: Weird problems with backtracked too far and session timed out Message-ID: --============_-1249649198==_ma============ Content-Type: text/plain; charset="us-ascii" ; format="flowed" $100 instant cash (PayPal) to the first person who helps me fix this. I'm doing standard stuff. nextPage = pageWithName("Page2"); return nextPage; The usual. Browser is IE 5.0.1 Windows NT sp6a. WO 4.5 unlimited. WO starts with Page1 OK via the usual mechanism of its name being invoked in defaultAction(). Page1 has a simple WOForm with one text field and a WOActiveImage button. Page2 has another one to Page3. Scenario 1 Enter some text on Page1. Click to Page2. You get to Page2 OK. Then when you click the image to get to Page3, WO gives the "you've backtracked too far" complaint. Weird. Then when you click the browser's back button the result looks OK. Scenario 2 Enter some text on Page1. Click to Page2. You get to Page2 OK. Click Browser's Back button. All looks well, but it isn't. Click again to Page2. Your session has timed out. Cache is 120 pages. Timeout is the default. Dave --============_-1249649198==_ma============ Content-Type: text/html; charset="us-ascii" Weird problems with backtracked too far and session ti
$100 instant cash (PayPal) to the first person who helps me fix this.

I'm doing standard stuff.
  nextPage = pageWithName("Page2");
  return nextPage;
The usual.  Browser is IE 5.0.1 Windows NT sp6a.  WO 4.5 unlimited.

WO starts with Page1 OK via the usual mechanism of its name being invoked in defaultAction().  Page1 has a simple WOForm with one text field and a WOActiveImage button.  Page2 has another one to Page3.

Scenario 1

Enter some text on Page1.  Click to Page2.  You get to Page2 OK.  Then when you click the image to get to Page3, WO gives the "you've backtracked too far" complaint.  Weird.  Then when you click the browser's back button the result looks OK.

Scenario 2

Enter some text on Page1.  Click to Page2.  You get to Page2 OK.  Click Browser's Back button.  All looks well, but it isn't.  Click again to Page2.  Your session has timed out.

Cache is 120 pages.  Timeout is the default.

Dave
--============_-1249649198==_ma============-- From bigdog at bulldogbeach.com Sat Jul 1 18:44:21 2000 From: bigdog at bulldogbeach.com (Gary Teter) Date: Sat Jul 1 17:44:21 2000 Subject: Multiple framework versions? Message-ID: I've got a WebObjects 4.5 application written in Java that's heavily dependent on some frameworks which are also written in Java, and I'd like to deploy multiple versions of the frameworks as I refine them. So I've got some hopefully easy-to-answer questions that I just can't find documentation on anywhere: Is framework versioning ("deploy as A/B/C") still broken on NT? On Solaris and OS X Server, is framework versioning broken with respect to finding resources within frameworks? In particular, I'm concerned about eomodels, but also web server resources, plists, etc. How do I tell an application that it should use version B of a framework instead of version A (or the current version)? Is it possible to version an application ("deploy as A/B/C")? ...Or should I just bite the bullet and rename my frameworks every single time I rev them? This is the worst possible option, of course, because I'll have to go through all my .wods and re-set the "framework" parameter on all my woimages, for example. :( -- Gary Teter, Big Dog Bulldog Beach Interactive http://www.bulldogbeach.com There's always an excuse, and it usually involves coffee. From clread at mindspring.com Sat Jul 1 20:16:07 2000 From: clread at mindspring.com (Charles L. Read) Date: Sat Jul 1 19:16:07 2000 Subject: EOKeyBinding warning - regarding capitalized key Message-ID: <878zvl4cqm.fsf@mindspring.com> I have a few `keys' (or instance variables) that start with a capital letter - Eg, CCName. When I compile the Java code containing these keys, I get the following warning: "EOKeyBinding Warning: .... was accessed using a capitalized key 'CCName'. Keys should normally start with a lowercase character. A typographical error like this could cause a crash or an infinite loop. ..." To Apple: isn't it just a bit extreme to program a software package to crash or enter into an infinite loop based on the case of an instance variable? Is this really something I should worry about? -- Charles L. Read PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D 70 C1 DF 5F 65 From rtthomas at mediaone.net Sat Jul 1 20:48:25 2000 From: rtthomas at mediaone.net (Todd Thomas) Date: Sat Jul 1 19:48:25 2000 Subject: Multiple framework versions? Message-ID: <200007020252.VAA01794@elmls01.ce.mediaone.net> HelveticaOn Saturday, July 1, 2000, at 07:43 = PM, Gary Teter wrote: I've got a WebObjects 4.5 application written in Java that's = heavily0000,0000,0000 dependent on some frameworks which are = also written in Java, and I'd like = to0000,0000,0000 deploy multiple versions of the = frameworks as I refine them. So I've = got0000,0000,0000 some hopefully easy-to-answer questions = that I just can't find = documentation0000,0000,0000 on = anywhere:0000,0000,0000 Is framework versioning ("deploy as = A/B/C") still broken on NT?0000,0000,0000 Can't answer this one.. On Solaris and OS X Server, is = framework versioning broken with = respect0000,0000,0000 to finding resources within frameworks? = In particular, I'm concerned = about0000,0000,0000 eomodels, but also web server = resources, plists, etc.0000,0000,0000 Or this one either...=20 How do I tell an application that = it should use version B of a = framework0000,0000,0000 instead of version A (or the current = version)?0000,0000,0000 It uses whatever version it was linked against when your app was built.. = in the AppKit.framework/AppKit if that's a symlink to = AppKit.framework/Versions/C/AppKit then that's what your app will use. Is it possible to version an = application ("deploy as = A/B/C")?0000,0000,0000 /Local/Applications/MyApp/Version_1.2/Blah.app /Local/Applications/MyApp/Version_1.3/Blah.app :-) ....Or should I just bite the bullet = and rename my frameworks every = single0000,0000,0000 time I rev them? This is the worst = possible option, of course, because = I'll0000,0000,0000 have to go through all my .wods and = re-set the "framework" parameter on = all0000,0000,0000 my woimages, for example. = :(0000,0000,0000 Where I used to work we had frameworks we deployed across OPENSTEP/Mach = and OPENSTEP/NT. For both OSes we used paths for versioning... So we had = something like: /Local/Library/Frameworks/MyStuff/Ver_01/MyFoundation.framework = Ver_01/MyAppKit.framework = Ver_02/MyFoundation.framework ...etc It worked well on both platforms and you don't have to play around with = major/minor version number framework stuff. I also think that would = solve any of the problems you listed above if they aren't already fixed = in 4.5. todd Lucida = Grande--- Todd = Thomas = rtthomas@= mediaone.net= From mgoodwin at mjgc.net Sat Jul 1 22:34:23 2000 From: mgoodwin at mjgc.net (Michael Goodwin) Date: Sat Jul 1 21:34:23 2000 Subject: Backtracked too far on "forward" links? Message-ID: <200007020434.VAA05161@scyther.omnigroup.com> I'm having the "You backtracked too far. The application backtracking limit of 30 has been exceeded." message on forward links. It can happen within 4 actions after starting the application (submit login, link, link, submit), so there couldn't be 30 queued up. What am I missing? Thanks! Michael From araxia at pacbell.net Sun Jul 2 00:09:51 2000 From: araxia at pacbell.net (Seth Milliken) Date: Sat Jul 1 23:09:51 2000 Subject: Unexplained Exception listed in Monitor log. In-Reply-To: <0006231623.AA087441@trinity.sunion.arizona.edu> References: <0006231623.AA087441@trinity.sunion.arizona.edu> Message-ID: Steve, FWIW, in a non-D2W WO 4.5 application I just deployed, I've been getting similar errors: *** -[NSConcreteMutableArray objectAtIndex:]: index (0) beyond bounds (0) Seth On 4:23 PM -0700, 6/23/00, steve stout wrote: >I have an app that uses D2W on WO 4.0.1 and I keep getting entries in the >Death/Exception log on Monitor like the one below: > >*** -[NSConcreteMutableArray objectAtIndex:]: index (7) beyond bounds (3) > >I'm only using NSMutableArrays in two places in my code and I can't seem to >throw the exception myself, but according to the Monitor log it happens >quite often. I was wondering if anyone knows if this is a bug in D2W. Or >is there some way that I can get more log info? -- _____________________________________________________ Seth Milliken araxia@pacbell.net San Francisco PGP Public Key Available _____________________________________________________ From devery at powerschool.com Sun Jul 2 06:42:36 2000 From: devery at powerschool.com (David K. Every) Date: Sun Jul 2 05:42:36 2000 Subject: Backtracked too far on "forward" links? In-Reply-To: <200007020434.VAA05161@scyther.omnigroup.com> Message-ID: on 7/1/00 9:37 PM, Michael Goodwin at mgoodwin@mjgc.net wrote: > I'm having the "You backtracked too far. The application backtracking > limit of 30 has been exceeded." message on forward links. It can happen > within 4 actions after starting the application (submit login, link, > link, submit), so there couldn't be 30 queued up. > > What am I missing? How many subcomponents on each page? Or are you using frames? (I'm just guessing there)... -- David K. Every www.MacKiDo.com From clread at mindspring.com Sun Jul 2 10:38:07 2000 From: clread at mindspring.com (Charles L. Read) Date: Sun Jul 2 09:38:07 2000 Subject: improve constructor for EOGenericRecord generated from EOModeler Message-ID: <87ya3k38tu.fsf@mindspring.com> One Entity in my EOModel is a `Customer'. The Java code auto-generated from the EOModeler supplies this constructor: public Customer() { super(); } So, elsewhere, when I decide to use a Customer object, the natural way to program is: declaration: protected Customer cust; creation: cust = new Customer(); That's what I would do in any normal Java programming environment. However, in WO 4.5, that is not good enough. Instead, you have to find the documentation for EOGenericRecord and there find the relevant specs for creating an instance of your Entity. So in my case, the creation code becomes: EOClassDescription description = EOClassDescription.classDescriptionForEntityName("Customer"); customer = (Customer)description.createInstanceWithEditingContext(null, null); Now, I will agree that this lends some flexibility to Entity-creation, but it is absolutely non-intuitive. Why can't someone at Apple simply add a (static) virtual constructor to the EOGenericRecord class? Just call it "EOGenericRecord.createEntity()", or whatever. Regards, -- Charles L. Read PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D 70 C1 DF 5F 65 From dneumann at apple.com Sun Jul 2 13:22:13 2000 From: dneumann at apple.com (David Neumann) Date: Sun Jul 2 12:22:13 2000 Subject: improve constructor for EOGenericRecord generated from EOModeler Message-ID: <200007021922.MAA12007@scv2.apple.com> The reason for the indirection in creating an EO instance vs. other objects is that many different entities might actually at runtime map to the exact same class. There is not a one-to-one class to entity thing here. So just creating an object isn't enough ... to tell the system what entity will manage its persistence. Anyway I always use DataSources to create objects. So whether it is an EOGenericRecrod or custom subclass, the creation in my code is always like this: obj = ds.createObject() If I start with EOGenericRecord and later move to using a custom subclass, my code doesn't have to change. Once you create a datasource you can leave it around and reuse it... Take a look at the costructor/class for EODatabaseDataSource. Also look at a convenience class called EOUtilities. d ---------- >From: clread@mindspring.com (Charles L. Read) >To: webobjects@omnigroup.com >Subject: improve constructor for EOGenericRecord generated from EOModeler >Date: Sun, Jul 2, 2000, 9:28 AM > > > One Entity in my EOModel is a `Customer'. > The Java code auto-generated from the EOModeler > supplies this constructor: > > public Customer() { > super(); > } > > So, elsewhere, when I decide to use a Customer > object, the natural way to program is: > > declaration: protected Customer cust; > > creation: cust = new Customer(); > > That's what I would do in any normal Java > programming environment. > > > However, in WO 4.5, that is not good enough. > Instead, you have to find the documentation > for EOGenericRecord and there find the relevant > specs for creating an instance of your Entity. > > So in my case, the creation code becomes: > > EOClassDescription description = > EOClassDescription.classDescriptionForEntityName("Customer"); > customer = (Customer)description.createInstanceWithEditingContext(null, null); > > > Now, I will agree that this lends some flexibility > to Entity-creation, but it is absolutely non-intuitive. > > > Why can't someone at Apple simply add a (static) > virtual constructor to the EOGenericRecord class? > Just call it "EOGenericRecord.createEntity()", or > whatever. > > > Regards, > -- > Charles L. Read > PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D 70 C1 DF 5F 65 > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From michael at stb.nccom.com Sun Jul 2 13:32:40 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Sun Jul 2 12:32:40 2000 Subject: Weird problems with backtracked too far and session timed out References: Message-ID: <395F989E.699CFD42@getasia.com> That is weird. Hmm... > I'm doing standard stuff. > nextPage = pageWithName("Page2"); > return nextPage; > The usual. Browser is IE 5.0.1 Windows NT sp6a. WO 4.5 unlimited. > > WO starts with Page1 OK via the usual mechanism of its name being > invoked in defaultAction(). Page1 has a simple WOForm with one text > field and a WOActiveImage button. Page2 has another one to Page3. > > Scenario 1 > > Enter some text on Page1. Click to Page2. You get to Page2 OK. Then > when you click the image to get to Page3, WO gives the "you've > backtracked too far" complaint. Weird. Then when you click the > browser's back button the result looks OK. > > Scenario 2 > > Enter some text on Page1. Click to Page2. You get to Page2 OK. > Click Browser's Back button. All looks well, but it isn't. Click > again to Page2. Your session has timed out. > > Cache is 120 pages. Timeout is the default. First, I know it's not the nicest solution, but what happens if you drop the cache to zero? Other than that, did you install over 4.0? Michael From bigdog at bulldogbeach.com Sun Jul 2 13:46:02 2000 From: bigdog at bulldogbeach.com (Gary Teter) Date: Sun Jul 2 12:46:02 2000 Subject: improve constructor for EOGenericRecord generated from EOModeler In-Reply-To: <87ya3k38tu.fsf@mindspring.com> Message-ID: on 7/2/00 7:28 AM, Charles L. Read at clread@mindspring.com wrote: > One Entity in my EOModel is a `Customer'. > The Java code auto-generated from the EOModeler > supplies this constructor: > > public Customer() { > super(); > } > > So, elsewhere, when I decide to use a Customer > object, the natural way to program is: > > declaration: protected Customer cust; > > creation: cust = new Customer(); > > That's what I would do in any normal Java > programming environment. Actually this works fine. I use it all the time. But sometimes you won't know which class you need to create so you need to use the classDescription constructor method. For example, let's say you have a (contrived) inheritance hierarchy of objects like so: Person (abstract) Customer (concrete) Employee (concrete) Address (abstract) CustomerAddress (concrete) EmployeeAddress (concrete) And Person has a to-many relationship defined to Address. Now let's say you want to write a generic routine in your control layer that adds an Address to a Person object. You could do it this way: public WOComponent addAddressToPerson() { if (person() instanceof Customer) { CustomerAddress address = new CustomerAddress(); session().defaultEditingContext().insertObject(address); // add to both sides of relationship, etc. } else if (person() instanceof Employee) { EmployeeAddress address = new EmployeeAddress(); // etc. } // etc. } but it's easier to do it this way (and you don't have to update your code when you add a new subclass of Person): public WOComponent addAddressToPerson() { EOClassDescription classDescription = person().classDescriptionForDestinationKey("addresses"); EOEnterpriseObject address = classDescription.createInstanceWithEditingContext(null,null); session().defaultEditingContext().insertObject(address); person().addObjectToBothSidesOfRelationshipWithKey( address,"addresses"); // etc. } -- Gary Teter, Big Dog Bulldog Beach Interactive http://www.bulldogbeach.com There's always an excuse, and it usually involves coffee. From michael at stb.nccom.com Sun Jul 2 13:46:33 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Sun Jul 2 12:46:33 2000 Subject: Now that's what I call a sticky situation! References: <200006292044.NAA03842@holly.hexdreams.com> Message-ID: <395F9BE0.E56F8E52@getasia.com> Kenny Leung wrote: > > Hi Micheal > > > If the update is done with takeStoredValue, then this probably isn't a > > good idea (overhead). > > If it's done with takeValue, then this is ok. > > > > What you need to do is implement a new takeValue that compares the > > incoming array with the existing array, and modifies it piece by piece. > > The problem is that when updating to-many relationships, EOF does > NOT set and reset the entire relationship. Instead it just swizzles > the objects contained inside it. Then perhaps I'm missing something -- wasn't this exactly what was wanted? > > > I think the real solution would be to fix keyValueCoding to use the > > > addTo... and removeFrom... methods for to-many's, but does anybody > > > have a solution to this? > > > > Odd -- on the EOF group, the idea/conclusion was to use 'valueForKey:' > > and 'addObject:toBothSidesOfRelationshipWithKey:' as the low level > > primitives to avoid any problems with key/value and relationships. > > You can't really override > addObject:toBothSidesOfRelationshipWithKey: because you don't know > which object it will be called on -- the one in question, or the one > on the opposite side of the relationship. > > -Kenny The idea here isn't so much that you override addObject:toBothSidesOfRelationshipWithKey:, but that you use it instead of using takeValue:forKey:. It correctly handles the case of removing an object out of one relationship and putting it into another. If I have a to many with a to-one inverse, and if I have object X <=> collection C1, and then move it into collection C2, the [C2 addObject: X toBothSidesOfRelationshipWithKey: @"key"] call will add X to C2's array, point X back to C2, see that X was pointing to C1 before, and then remove it from the C1 array. AddObject:... works fine even down to a simple non-relationship key, as it does everything in terms of takeValue... . Incidently, the documentation states that the addObject:toPropertyWithKey and removeObject:... calls use the addTo... and removeFrom... methods, just like the original poster wanted. From sb at well.com Sun Jul 2 15:49:31 2000 From: sb at well.com (Stefan Berreth) Date: Sun Jul 2 14:49:31 2000 Subject: custom EOFaultHandler - howto? Message-ID: dear all, I am trying to figure out how to write an own EOFaulthandler and register it with my own EO class so i can control what happens when -completeInitializationOfObject: is messaged to the EOFault object that corresponds to my EO class. Could anybody familiar with that mechanism possible let me know how to approach this? Maybe with some few lines of pseudo-code? I have been reading the documentation for EOFault and EOFaultHandler for some time already and it smells as if all i need to know is written there already - but I still don't see what i have to do. It is still unclear to me how I would tell EOF it should use my newly written EOFaulaultHandler subclass when turning my specific EO class instance into an EOFault. Thanks a lot - Stefan PS: Some background: I ran into this challange while researching the behaviour of the LDAPAdaptor example that came with (WO)EOF 4.5. I have created a small test project with two models, one with an adaptor for an ORACLE DRBMS and the other one to an ORACLELDAP server. When I try to traverse a relationship (to many) from an entity on the RDBMS model to an entity in the LDAP model i run into an exception that advised me to implement -[EOAccessDeferredFaultHandler completeInitialisationOfObject:] . This is what I am trying to achieve now. s t e f a n . b e r r e t h - sb@well.com pgp key fingerprint: AB14 A3F2 E163 ADA2 6444 9AC6 2942 518E 3F78 4FAF pgp = pretty good privacy, see http://www.pgpi.org/ From clread at mindspring.com Sun Jul 2 16:57:21 2000 From: clread at mindspring.com (Charles L. Read) Date: Sun Jul 2 15:57:21 2000 Subject: saving to DB -- saveChanges() Message-ID: <87r99c2r9s.fsf@mindspring.com> I have a Customer class (in Java) that corresponds to an Entity (of the same name) in my EOModel. In one component, I bind several properties to elements in the GUI. When the user presses submit, the WO app saves these properties to the DB, in the usual way: session().defaultEditingContext().saveChanges(); Unfortunately, no new record is created in the DB table, according to the data viewer from the EOModel, the off-line sql interpreter (using `select * from Customer'), or the FrontBase content editor. This particular component is not using WODisplayGroups, so that is not an issue here. Any ideas why the saveChanges() is not working? [NOTE I have verified that the DB is read/write, so it does not appear to be a permissions problem.] -- Charles L. Read PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D 70 C1 DF 5F 65 From axislux at pacbell.net Sun Jul 2 19:21:06 2000 From: axislux at pacbell.net (Joshua 'Tool User' Marker) Date: Sun Jul 2 18:21:06 2000 Subject: Accessing elements of Session.java In-Reply-To: <39539AA6.5B3745CD@apple.com> Message-ID: We make an abstract superclass (MyWoComponent.java) and have all our components descend from it. It includes: private Session mySession() { return (Session) session(); } The win here is that mySession shows up in WOB, allowing access to session methods and variables from within that app. This is slightly less obnoxious than littering my code with ((Session)session()).mySessionMethod(foo, bar); all the time. I still feel dirty, but. . . you gotta love java! (Why do ya gotta? 'cause it's the only show in town!) You see, session() returns the WOSession, and you need to cast (a java term - it makes your code feel not unlike a fractured, twisted limb; hence 'cast') the returned object to Session 'cause java is a bit nervous about trying out methods willy-nilly on objects it's not sure can take it. -j (who has been writing ObjC again lately -- did you guess?) on 12/24/99 10:29 AM, david m. richter at drichter@apple.com wrote: >> I have added some variables to Session.java with hopes that they would >> be global to all screens in a project. The screen designer uses these >> variables just fine. My problem is--how do you access these variables >> from a different java file (for example Main.java). If I use (Session) >> this.session(), it doesn't work. All of my custom variables come back >> as null since this.session returns type WOSession, not Session. >> > > Hi there, > That's a good question; what you want to do is make sure that > you can get at those custom variables, obviously. For this, make > sure that your cast is working properly--check out how you used > it. For instance, if you're in a given different .java file (say, > MyCustomComponent.java) and you want access to some String > in that's in the session (and has the appropriate accessor), you'd say: > ... > Session s = (Session)session(); > String localString = s.sessionString(); > ... > You already seem to know that a given WOComponent will > know how to give you back a reference to its current Session > instance, and you can read a bit more about it in WOInfoCenter > or the JavaBrower. `this' isn't needed. From mgoodwin at mjgc.net Sun Jul 2 23:37:42 2000 From: mgoodwin at mjgc.net (Michael Goodwin) Date: Sun Jul 2 22:37:42 2000 Subject: saving to DB -- saveChanges() Message-ID: <200007030537.WAA15846@scyther.omnigroup.com> Charles, I'm just learning this myself, but in my project I added: session().defaultEditingContext().insertObject(); prior to the saveChanges() call. I currently have it in the action member from the calling page which handles the "new" selection. This may need to go in the actual "save" action member along with the saveChanges() call to avoid saving extra records, but I haven't gotten that far yet. Right now, it's saving the records though.... Hope this helps! Michael 7/2/00 1:47 PM Charles L. Read > >I have a Customer class (in Java) that corresponds >to an Entity (of the same name) in my EOModel. > >In one component, I bind several properties to >elements in the GUI. When the user presses submit, >the WO app saves these properties to the DB, in >the usual way: > > session().defaultEditingContext().saveChanges(); > >Unfortunately, no new record is created in the >DB table, according to the data viewer from the >EOModel, the off-line sql interpreter (using >`select * from Customer'), or the FrontBase >content editor. > >This particular component is not using WODisplayGroups, >so that is not an issue here. > >Any ideas why the saveChanges() is not working? > > >[NOTE I have verified that the DB is read/write, >so it does not appear to be a permissions problem.] > >-- >Charles L. Read >PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D 70 C1 DF 5F 65 >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From info at selbstdenker.de Mon Jul 3 00:37:35 2000 From: info at selbstdenker.de (=?ISO-8859-1?Q?Stephan=20F=FCrnrohr?=) Date: Sun Jul 2 23:37:35 2000 Subject: [OT] Auto restart OSX Server after power failure?? In-Reply-To: <200006301418.KAA11813@mail.byte-productions.com> References: <200006301418.KAA11813@mail.byte-productions.com> Message-ID: <20000703063829.27791@smtp.www-service.de> On Fre, 30. Jun 2000, Rob Vezina wrote: >Is there a setting in OSX Server that will restart the box after a power >failure like there is in OS9?? Hi! It worked when we started the server into "normal" MacOS (all our MacOSXSs have a little partition with MacOS 8.6 or so) and set the preferences in the Energy-Saver (?) controlpanel. (There is a menu in the menubar where you can set your server-preferences). Ciao, Stephan -- STEPHAN SELBSTDENKER Kommunikationsdesign - Grafik - Fotografie Tel.: 0941 - 5839195 E-mail: stephan@selbstdenker.de Web: http://www.selbstdenker.de From carlos.gonzalez at bancoval.es Mon Jul 3 02:46:48 2000 From: carlos.gonzalez at bancoval.es (Carlos Gonzalez Sanchez) Date: Mon Jul 3 01:46:48 2000 Subject: Cannot connect to Sybase Message-ID: <3960527A.DA51C2B9@bancoval.es> I have made the deployment of a very simple WebObjects Application that should access to a Sybase database. Development machine is NT, and deployment is HP-UX. I compiled the application with "make install", following the instructions of linking statically the Sybase libs. with it. I created an instance of it with Monitor, executed and it has to make to connection in order to retrieve a result set, it fails with the following exception: Error: EOGeneralAdaptorException Reason: Exception occured while evaluating xxxxxDisplayGroup.qualifyDataSource', on target:
: Sybase: ct_connect(): network packet layer: internal net library error: Net-Lib protocol driver call to connect two endpoints failed Socket connect failed - errno 0 It seems like it does not find the database server machine. Maybe it is just a problem of environment variables. I tried almost everything with no luck. ¿Can anybody help me? Thanks From cnyap at imageres.demon.co.uk Mon Jul 3 03:44:09 2000 From: cnyap at imageres.demon.co.uk (Chih Nam Yap) Date: Mon Jul 3 02:44:09 2000 Subject: Deployment issue, please advise Message-ID: <012101bfe4d3$2680c970$2d01a8c0@tech3> Hi there, We are going to deploy our product to our first customer. Can anyone tell us what files should be deleted once our product is deployed. Currently, we think we should delete all the .java files, is there any other kind of files we should delete. Thanks. Chih Nam Yap ************************************************ The information in this e-mail (which includes any files transmitted with it) is confidential and may also be legally privileged. It is intended for the addressee only. Access to this e-mail by anyone else is unauthorised. It is not to be relied upon by any person other than the addressee except with our prior written approval. If no such approval is given, we will not accept any liability (in negligence or otherwise) arising from any third party acting, or refraining from acting, on such information. Unauthorised recipients are required to maintain confidentiality. If you have received this e-mail in error please notify us immediately, destroy any copies and delete it from your computer system. Any use, dissemination, forwarding, printing or copying of this e-mail is prohibited. Copyright in this e-mail and any document created by us and sent as an attachment to this e-mail will be and remain vested in us and will not be transferred to you. We assert the right to be identified as the author of and to object to any misuses of the contents of this e-mail or such documents. Whilst we run anti-virus software on all internet e-mails we are not liable for any loss or damage. The recipient is advised to run their own anti-virus software. Nothing in this e-mail or any attachment shall be an acceptance of any offer previously made nor shall be itself an offer capable of acceptance to form a legally binding contract *********************************************** From mmalc at stepwise.com Mon Jul 3 03:50:55 2000 From: mmalc at stepwise.com (mmalcolm crawford) Date: Mon Jul 3 02:50:55 2000 Subject: EOKeyBinding warning - regarding capitalized key In-Reply-To: <878zvl4cqm.fsf@mindspring.com> Message-ID: Charles L. Read wrote: > To Apple: isn't it just a bit extreme to program a software > package to crash or enter into an infinite loop based > on the case of an instance variable? > (Obviously not replying on Apple's behalf...) Given the flexibility you get when you adopt the convention, no, not really. > Is this really something I should worry about? > Yes. mmalc. From mmalc at stepwise.com Mon Jul 3 03:53:31 2000 From: mmalc at stepwise.com (mmalcolm crawford) Date: Mon Jul 3 02:53:31 2000 Subject: Problem saving information In-Reply-To: <200007010040.RAA24587@scyther.omnigroup.com> Message-ID: Michael Goodwin wrote: > I'm getting an EOGeneralAdaptorException in my application when I try to > save new or updated records to the underlying database. > Inserts and updates result in an EOAdaptorOptimisticLockingFailure. This > had been working, and I haven't made any configuration or other changes > that would have caused this. > Restarting the application, and rebooting the machine won't clear it up. > Have you toggled any of the conflict detection switches (the things that look like handbags, or locks) in your EOModel? In particular the one for the primary key? Or unset the primary key? mmalc. From mmalc at stepwise.com Mon Jul 3 03:58:34 2000 From: mmalc at stepwise.com (mmalcolm crawford) Date: Mon Jul 3 02:58:34 2000 Subject: saving to DB -- saveChanges() In-Reply-To: <87r99c2r9s.fsf@mindspring.com> Message-ID: Charles L. Read wrote: > session().defaultEditingContext().saveChanges(); > Unfortunately, no new record is created in the > DB table > Have you inserted the new objects into the editing context? When you're beginning with EOF it's usually safest if you always pair EO creation with EO insertion, just so you know you've done exactly the right thing. EOEnterpriseObject newCustomer = new Customer(); theEditingContextWhereverItComesFrom_probablyTheSessionsDefaultEC. insertObject(newCustomer); mmalc. From Alexander.Lamb at dim.hcuge.ch Mon Jul 3 04:27:58 2000 From: Alexander.Lamb at dim.hcuge.ch (Alexander Lamb) Date: Mon Jul 3 03:27:58 2000 Subject: Discussion about characters encoding, Java and XML parsing Message-ID: <00ac01bfe4d8$ed9ab070$a81ec381@CIHDM50> Hello list, I thought I would let this list share something I partly solved this morning. It is the issue of sending non ASCII characters through HTTP to be decoded by the XML decoder on a server application. The situation is: I have a WO application which listens to DirectAction calls which simply are logs from other apps (WO or not) sent in XML format. I decode the XML using the WOXMLDecoder and a mapping model and insert the message into a database. Simple? Well, yes until I realized the decoder would raise an exception when reading esoteric characters such as "é" or "à" :-) To send the message (from a WO Java app) I was doing: String message = logCoder.encodeRootObjectForKey(values, "LOG"); this gave me a String sometimes containing non ASCII characters. Then I converted it to an NSData: NSData requestContent = new NSData(message.getBytes()); Then I open a connection and send the whole thing: WOHTTPConnection connection = new WOHTTPConnection(serverName, serverPort); WORequest request = new WORequest("POST", serverAction, httpVersion, null, requestContent, null); On the receiving side (in my DirectAction) I did: NSData logContent = this.request().content(); message = myDecoder.decodeRootObject(logContent); Well, this works fine until you send those non ASCII characters :-) At which point the decoder raises a message! So, I started looking into character encoding, and found that on the Java side, you could ask for the bytes of a String specifying an encoding. However, IMPOSSIBLE to find anywhere in the Java documentation the list of available encodings. Therefore, I simply tried with the following: NSData requestContent = new NSData(message.getBytes("Unicode")); And guess what... it worked! The rest of the code could stay the same. It sort of recognizes on the decoding side that the NSData in the message content is actually Unicode and not plain ASCII, even though I didn't append somehing like: In my XML stream. Am I the first one on this list to have trouble with encoding? Is there some documentation somewhere which would summarize better what I simply discovered through trial and error? In perticular: - Where can I find the list of available encodings in Java (the actual name Java uses, for example "Unicode"). - Is it necessary to encode in Unicode since our language here will be French, maybe UTF8 should be enough? - Do the WOXMLCoder WOXMLDecoder use the encoding and xml version given on the first line of an XML stream? How does the decoder know what encoding is used? Alexander ________________________________ Alexander Lamb Groupe Serveurs Applicatifs Division d'Informatique Médicale Hôpitaux Universitaires de Genève alamb@dim.hcuge.ch +41-22-372-48-46 From gregory.bernard at groupemultimedia.com Mon Jul 3 06:40:14 2000 From: gregory.bernard at groupemultimedia.com (Gregory Bernard) Date: Mon Jul 3 05:40:14 2000 Subject: How to reference a WO website ? Message-ID: Dear users, How would you proceed to reference a web site that uses WebObjects ? The first page of our site is dynamicŠ  We've got problem to have a high ranking level on the various search engines. Any idea will be welcome. ________________________________________________ «?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Grégory Bernard 10, rue vauvilliers Directeur Internet 75001 Paris France Groupe Multimédia tel : +(33) 1 40 26 79 85 ________________________________________________ «?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ From sb at well.com Mon Jul 3 06:51:29 2000 From: sb at well.com (Stefan Berreth) Date: Mon Jul 3 05:51:29 2000 Subject: How to reference a WO website ? In-Reply-To: References: Message-ID: *This message was transferred with a trial version of CommuniGate(tm) Pro* The german company Conrad (http://www.condat.de) once had a framework that helped web spiders to traverse a WO generated website and reference it the right way. However, i haven'd tried it out myself. You might want to have a look at that. It's called WoFindMe. See: http://www.condat.de/english/produkte/wo_find_me.shtml - Stefan >Dear users, > > >How would you proceed to reference a web site that uses WebObjects ? > >The first page of our site is dynamicŠ > >We've got problem to have a high ranking level on the various search >engines. > > >Any idea will be welcome. > >________________________________________________ >«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§ >¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ >Grégory Bernard 10, rue vauvilliers >Directeur Internet 75001 Paris France >Groupe Multimédia tel : +(33) 1 40 26 79 85 >________________________________________________ >«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§ >¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ > >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects s t e f a n . b e r r e t h - sb@well.com pgp key fingerprint: AB14 A3F2 E163 ADA2 6444 9AC6 2942 518E 3F78 4FAF pgp = pretty good privacy, see http://www.pgpi.org/ From fischer at kraftup.com Mon Jul 3 07:40:04 2000 From: fischer at kraftup.com (Ingo Fischer) Date: Mon Jul 3 06:40:04 2000 Subject: save decimal number to oracle db Message-ID: <396097ED.1DB085A3@kraftup.com> Hello, I try to enter a decimal number in a oracle db. I use BigDecimal and I set the scale to two. In the model I choosed External Type : Number Internal Type : Decimal Number External Precision : 6 External Scale : 2 The SQL-Statement is: Number(6,2). If I save a number (e.g. 4.15 ) to the db, the error 'Invalid Value' comes up. Where is the error? How can I save a number like 4.15 to an oracle db? Thanks a lot Ingo From fischer at kraftup.com Mon Jul 3 07:40:16 2000 From: fischer at kraftup.com (Ingo Fischer) Date: Mon Jul 3 06:40:16 2000 Subject: save decimal number to oracle db Message-ID: <396097F9.50B8AC5D@kraftup.com> Hello, I try to enter a decimal number in a oracle db. I use BigDecimal and I set the scale to two. In the model I choosed External Type : Number Internal Type : Decimal Number External Precision : 6 External Scale : 2 The SQL-Statement is: Number(6,2). If I save a number (e.g. 4.15 ) to the db, the error 'Invalid Value' comes up. Where is the error? How can I save a number like 4.15 to an oracle db? Thanks a lot Ingo From fischer at kraftup.com Mon Jul 3 07:44:27 2000 From: fischer at kraftup.com (Ingo Fischer) Date: Mon Jul 3 06:44:27 2000 Subject: save decimal number to oracle db Message-ID: <396098F7.E3D2F67E@kraftup.com> Hello, I try to enter a decimal number in a oracle db. I use BigDecimal and I set the scale to two. In the model I choosed External Type : Number Internal Type : Decimal Number External Precision : 6 External Scale : 2 The SQL-Statement is: Number(6,2). If I save a number (e.g. 4.15 ) to the db, the error 'Invalid Value' comes up. Where is the error? How can I save a number like 4.15 to an oracle db? Thanks a lot Ingo From carlos.gonzalez at bancoval.es Mon Jul 3 08:05:58 2000 From: carlos.gonzalez at bancoval.es (Carlos Gonzalez Sanchez) Date: Mon Jul 3 07:05:58 2000 Subject: Cannot connect to Sybase References: <3960527A.DA51C2B9@bancoval.es> <200007030915.AA19119@onestep.co.uk> Message-ID: <39609D3E.E15055FC@bancoval.es> I actually can connect using isql from the deployment machine. And the connection dictionary has a hostname that is included in the "interfaces" file of Sybase. For some reason, I think WebObjects does not reach the interfaces file. But I have the SYBASE_HOME variable pointing to the right path. ¿What else can I try? David Andrew Knight wrote: > Hi, > > You wrote: > > Error: > > EOGeneralAdaptorException > > Reason: > > Exception occured while evaluating > > xxxxxDisplayGroup.qualifyDataSource', on target:
: > > Sybase: ct_connect(): network packet layer: internal net library > > error: Net-Lib protocol driver call to connect two endpoints failed > > Socket connect failed - errno 0 > > Have you actually tested you can connect to the database server from the > deployment machine ?, using isql or something. > > Once you can prove the machine can connect to the database server you should > then check the EOModel, is the connection dictionary correct, maybe the > machine had an alias under NT that is not available on the HP system. > > --- > Regards David Knight | OneStep Solutions Plc | Solutions > | | Workstations > Innovative Solutions | UK phone: 01702 426400 | Servers > For MacOS X, Windows NT | fax: 01702 426420 | Security > OPENSTEP and Solaris | Int'l prefix: +44 1702 | Networks > using Yellow Box and | | Maintenance > WebObjects technologies | http://www.onestep.co.uk | Support From Filippo.Macchiettini at concept.it Mon Jul 3 08:53:45 2000 From: Filippo.Macchiettini at concept.it (Filippo Macchiettini) Date: Mon Jul 3 07:53:45 2000 Subject: NSGregorianDate gregorianUnitsSinceDate() problem in Java Message-ID: <200007031453.QAA10870@mindseal.comm2000.it> Hi, I have this strange problem with NSGregorianDate.gregorianUnitsSinceDate() in java on MacOSX: I compute the difference between two dates in days with these lines of code: NSGregorianDate myStartDate // assume this exists NSGregorianDate myStopDate // assume this exists NSGregorianDate.IntRef gregorianDays=new NSGregorianDate.IntRef(); myStopDate.gregorianUnitsSinceDate(myStartDate, null, null, gregorianDays,null, null, null); and it works fine if the difference is, let's say, less than 100 days (or something like that). If the difference is more than 100 days (or something like that:) the gregorianUnitsSinceDate() method hangs and, after a bit, the MacOSX starts swapping, as it was recursively calling something. But if I insert an object to store the difference in months: NSGregorianDate.IntRef gregorianMonths=new NSGregorianDate.IntRef(); myStartDate.gregorianUnitsSinceDate(myStopDate, null, gregorianMonths, gregorianDays,null, null, null); everything works fine. any clue? bye Filippo From jon at holicow.com Mon Jul 3 09:03:52 2000 From: jon at holicow.com (Jon Nolan) Date: Mon Jul 3 08:03:52 2000 Subject: EOKeyBinding warning - regarding capitalized key In-Reply-To: References: <878zvl4cqm.fsf@mindspring.com> Message-ID: >Charles L. Read wrote: > >> To Apple: isn't it just a bit extreme to program a software >> package to crash or enter into an infinite loop based >> on the case of an instance variable? My *guess* is that is has something to do with key value coding mechanisms possibly creating an infinite loop. I don't know exactly how but I'd count on the fact that the warning isn't just there to bug you. If you feel your code is safe in this regard there is a WOApplication method that will suppress the warnings. See the 4.5 release notes. Jon Nolan Web Dynamics, Inc. 476 Heritage Park Blvd., Suite 215 Layton, Utah 84041 Phone: 801-927-1008 Email: jon@holicow.com From joh2002 at med.cornell.edu Mon Jul 3 09:12:09 2000 From: joh2002 at med.cornell.edu (John Huang) Date: Mon Jul 3 08:12:09 2000 Subject: EOKeyBinding warning - regarding capitalized key In-Reply-To: References: <878zvl4cqm.fsf@mindspring.com> Message-ID: <4.2.0.58.20000702110844.00a3ae10@pop.med.cornell.edu> I also get this warning when I call the REPORTMILL API functions to get the data for my report. I put this line EOKeyValueCoding.KeyBinding.suppressCapitalizedKeyWarning(); in applcation.java. I am not sure if it is safe to prevent my application from carshing or entering an infinite loop. Any hint. John At 09:03 AM 7/3/00 -0600, Jon Nolan wrote: > >Charles L. Read wrote: > > > >> To Apple: isn't it just a bit extreme to program a software > >> package to crash or enter into an infinite loop based > >> on the case of an instance variable? > >My *guess* is that is has something to do with key value coding mechanisms >possibly creating an infinite loop. I don't know exactly how but I'd count >on the fact that the warning isn't just there to bug you. If you feel your >code is safe in this regard there is a WOApplication method that will >suppress the warnings. See the 4.5 release notes. > >Jon Nolan > >Web Dynamics, Inc. >476 Heritage Park Blvd., Suite 215 >Layton, Utah 84041 >Phone: 801-927-1008 >Email: jon@holicow.com >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From clread at mindspring.com Mon Jul 3 09:41:04 2000 From: clread at mindspring.com (Charles L. Read) Date: Mon Jul 3 08:41:04 2000 Subject: core dump - related to setup for WODisplayGroups? Message-ID: <873dlr2vdf.fsf@mindspring.com> I have the following Main.java program (appended beneath). I have streamlined parts that I believe are not relevant. Observations: 0. The WODisplayGroups here fetch from a `Product' table. 1. In setupAccountInfo(), if I comment out the call to session().defaultEditingContext().insertObject(customer); things work ok, but in the CustomerAccountInfo component, changes to the Customer object are not saved when I call session().defaultEditingContext().saveChanges(); 2. If I comment out reference to the category1 WODispayGroup (ie, the code where category1 products are fetched), but execute the line session().defaultEditingContext().insertObject(customer); then things work ok. IE, changes to the Customer are object are saved. (Of course, we no longer have available references to the category1 products...) 3. The problem: if I run everything as is -- in particular, as soon as the 2nd WODisplayGroup, category1, enters into the code, the WO app dumps core as soon as the action method setupAccountInfo() is invoked. Inserting debugString()'s shows that setupAccountInfo() actually completes. So, I am suspicious there the coredump happens somewhere in the initialization for CustomerAccountInfo. Questions: A. Why should the call to session().defaultEditingContext().insertObject(customer); trigger a coredump? Eg, if that line is absent, things work ok (though nothing is saved to DB). B. When fetching N WODisplayGroups from the same table, is there any special work you need to do to setup the table before re-fetching for each new WODisplayGroup? Thanks! Charlie -- public class Main extends WOComponent { /** @TypeInfo Product */ protected Product product; // Holds list of products that customer has checked. protected NSMutableSet productCheckedList; // We create a display group for each category of product. protected WODisplayGroup category0DisplayGroup; protected WODisplayGroup category1DisplayGroup; public Main() { super(); category0DisplayGroup.setDelegate(new ProductDelegate("Product", "category", EOQualifier.QualifierOperatorLike, new String("Category0*"))); category0DisplayGroup.fetch(); category1DisplayGroup.setDelegate(new ProductDelegate("Product", "category", EOQualifier.QualifierOperatorLike, new String("Category1*"))); category1DisplayGroup.fetch(); } public Product product() { return product; } public void setProduct(Product p) { product = p; } public CustomerAccountInfo setupAccountInfo() { Customer customer = new Customer(); session().defaultEditingContext().insertObject(customer); CustomerAccountInfo nextPage = (CustomerAccountInfo)pageWithName("CustomerAccountInfo"); // Initialize your component here nextPage.setCustomer(customer); return nextPage; } } From mario at cyantic.com Mon Jul 3 09:46:33 2000 From: mario at cyantic.com (Mario Ruggiero) Date: Mon Jul 3 08:46:33 2000 Subject: NSGregorianDate gregorianUnitsSinceDate() problem in Java In-Reply-To: <200007031453.QAA10870@mindseal.comm2000.it> References: <200007031453.QAA10870@mindseal.comm2000.it> Message-ID: <200007031546.LAA08312@persepolis.cyantic.com> We have encountered a number of problems in NSGregorianDate where the code appears to go into an infinite loop, leaking significant amounts of memory in each iteration. This usually occurs when the date is near a daylight savings time change, but not necessarily at the date of the change. We have not found any way to avoid the problem, other than to not use the offending methods. We also saw a similar problem in dateByAddingGregorianUnits. The problem was supposed to have been fixed in 4.5, but we have seen it even in that release. Mario Ruggiero Cyantic Systems Corp. Filippo Macchiettini wrote: > I have this strange problem with > NSGregorianDate.gregorianUnitsSinceDate() in java on MacOSX: > > I compute the difference between two dates in days with these lines > of code: > > > NSGregorianDate myStartDate // assume this exists > NSGregorianDate myStopDate // assume this exists > > NSGregorianDate.IntRef gregorianDays=new NSGregorianDate.IntRef(); > > myStopDate.gregorianUnitsSinceDate(myStartDate, null, null, > gregorianDays,null, null, null); > > > and it works fine if the difference is, let's say, less than 100 > days (or something like that). > If the difference is more than 100 days (or something like that:) > the gregorianUnitsSinceDate() > method hangs and, after a bit, the MacOSX starts swapping, as it was > recursively calling > something. > > But if I insert an object to store the difference in months: > > NSGregorianDate.IntRef gregorianMonths=new > NSGregorianDate.IntRef(); > > myStartDate.gregorianUnitsSinceDate(myStopDate, null, > gregorianMonths, gregorianDays,null, null, null); > > > everything works fine. > > > any clue? > > bye Filippo > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > Message-ID: <3960B6C5.CBA82CAA@getasia.com> Ok, what is gained by using this convention? Keep in mind that previously, every table I've built has used IDFoo for the keys for table Foo. This has the advantage that all of the keys (primary, foreign, etc) get placed together. They normally are not class properties, but every once in a while, ... mmalcolm crawford wrote: > > Charles L. Read wrote: > > > To Apple: isn't it just a bit extreme to program a software > > package to crash or enter into an infinite loop based > > on the case of an instance variable? > > > (Obviously not replying on Apple's behalf...) > > Given the flexibility you get when you adopt the convention, no, not really. > > > Is this really something I should worry about? > > > Yes. > > mmalc. > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From j-rochkind at nwu.edu Mon Jul 3 10:00:09 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Mon Jul 3 09:00:09 2000 Subject: use WOImage to make a submit button? In-Reply-To: <395D3A5A.7353FB92@global-village.net> References: <87lmzm6dbr.fsf@mindspring.com> Message-ID: <4.2.2.20000703110126.021125d8@hecky.acns.nwu.edu> You can use WOActiveImage instead of WOImage. This translates into HTML like , which is the HTML way to do an image submit button. Probably easier than doing javascript tricks. At 05:24 PM 6/30/2000 -0700, you wrote: >Sort of. You can > >1. Wrap the WOImage in a WOHyperlink >2. Bind the WOHyperlink action to any method (it will not get called). >3. Add an onClick = "ChangePasswordForm.submit(); return false;"; >binding the WOHyperLink >4. Bind the action of the WOForm to whatever you want called. > > >I've had sporadic luck with this. I can not recall the exact problems >with NS/IE but I recall it messing up keyboard or mouse navigation in >one of them. Maybe someone else has some suggestions as to when this >does not work. > >Chuck > > >"Charles L. Read" wrote: > > > > Can you use a WOImage to make a submit button? > > > > (I have not seen this done in HTML, so I assume > > the answer is No. But if there is any evidence > > to the contrary, please post!) > > > > Regards, > > -- > > Charles L. Read > > PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D 70 C1 DF 5F 65 > > _______________________________________________ > > WebObjects mailing list > > WebObjects@omnigroup.com > > http://www.omnigroup.com/mailman/listinfo/webobjects > >-- > >Chuck Hill chill@global-village.net >Global Village Consulting Inc. http://www.global-village.net >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From j-rochkind at nwu.edu Mon Jul 3 10:01:45 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Mon Jul 3 09:01:45 2000 Subject: popup window from browser? In-Reply-To: Message-ID: <4.2.2.20000703110244.02138ed0@hecky.acns.nwu.edu> If you just bind the "TARGET" attribute of a WOHyperlink to "_blank", then a new window will be opened when the user cliks on that hyperlink. With whatever content you specify according to other attributes of the WOHyperLink. Or you can set the target to some name, and a new window will be opened with that name, and all future targets of that same name will open in that same window. --Jonathan At 05:38 PM 6/30/2000 -0500, you wrote: >Is there a WO component that will >cause a new window to be popped up >from your browser in order to display >some related content? > > >NOTE I've read the postings on `mouseover' >popups -- and that is not what I'm trying >to do. > >Regards, >Charlie >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From j-rochkind at nwu.edu Mon Jul 3 10:06:25 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Mon Jul 3 09:06:25 2000 Subject: improve constructor for EOGenericRecord generated from EOModeler In-Reply-To: <87ya3k38tu.fsf@mindspring.com> Message-ID: <4.2.2.20000703110655.018dd638@hecky.acns.nwu.edu> Hmm. I don't understand. I create 4.5 EOGenericRecord-descended Java EOs all the time with the straight no argument constructor, and it works fine. I've never had to much with anything in EOClassDescription. You do have to insert the EO into some editing context after you've created it. Custom customer = new Customer(); session().defaultEditingContext().insertObject(customer); always works fine for me. --Jonathan At 09:28 AM 7/2/2000 -0500, you wrote: >One Entity in my EOModel is a `Customer'. >The Java code auto-generated from the EOModeler >supplies this constructor: > > public Customer() { > super(); > } > >So, elsewhere, when I decide to use a Customer >object, the natural way to program is: > > declaration: protected Customer cust; > > creation: cust = new Customer(); > >That's what I would do in any normal Java >programming environment. > > >However, in WO 4.5, that is not good enough. >Instead, you have to find the documentation >for EOGenericRecord and there find the relevant >specs for creating an instance of your Entity. > >So in my case, the creation code becomes: > > EOClassDescription description = > EOClassDescription.classDescriptionForEntityName("Customer"); > customer = > (Customer)description.createInstanceWithEditingContext(null, null); > > >Now, I will agree that this lends some flexibility >to Entity-creation, but it is absolutely non-intuitive. > > >Why can't someone at Apple simply add a (static) >virtual constructor to the EOGenericRecord class? >Just call it "EOGenericRecord.createEntity()", or >whatever. > > >Regards, >-- >Charles L. Read >PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D 70 C1 DF 5F 65 >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From gino at btconnect.com Mon Jul 3 10:10:15 2000 From: gino at btconnect.com (Gino Pacitti) Date: Mon Jul 3 09:10:15 2000 Subject: WO GS Question Message-ID: <3960BADC.9460EA1F@btconnect.com> If anyone has a second would someone browse to page 125 of the 4.5 Getting Started Manual and plese give me the correct statement: In the book it has - public void awakeFromInsertion(EOEditingContext context){ super.wakeFromInsertion(context); //following is the strange line roleName = "New Role"; //end the strange line } This is giving me a compile error? There is no roleName attribute to the class and the error in the compiler tells me that I am trying to reference a method - of which there is - with the same name. From mmalc at stepwise.com Mon Jul 3 10:10:54 2000 From: mmalc at stepwise.com (mmalcolm crawford) Date: Mon Jul 3 09:10:54 2000 Subject: EOKeyBinding warning - regarding capitalized key In-Reply-To: <3960B6C5.CBA82CAA@getasia.com> Message-ID: Michael Gersten wrote: > Ok, what is gained by using this convention? > EOKeyValueCoding works as advertised, as do a number of other bindings (e.g. in WOBuilder). > Keep in mind that previously, every table I've built has used IDFoo for > the keys for table Foo. This has the advantage that all of the keys > (primary, foreign, etc) get placed together. They normally are not class > properties, but every once in a while, ... > I'm not sure why what you call the table is relevant? mmalc. From mmalc at stepwise.com Mon Jul 3 10:30:40 2000 From: mmalc at stepwise.com (mmalcolm crawford) Date: Mon Jul 3 09:30:40 2000 Subject: EOKeyBinding warning - regarding capitalized key In-Reply-To: Message-ID: I wrote: >> Ok, what is gained by using this convention? >> > EOKeyValueCoding works as advertised, as do a number of other bindings (e.g. > in WOBuilder). > cf: file:/System/Documentation/Developer/WebObjects/DeltaDoc/EOF.html Enforcing Lowercase Key Names EOF expects keys to begin with a lowercase letter. It now logs a warning if that restriction is violated. For backwards compatibility with previous releases which did not strictly check capitalization, you can use the EOKeyValueCoding.KeyBinding static method suppressCapitalizedKeyWarning to suppress the warning for capitalized keys (EOKeyBinding class method in Objective-C). However, note that this method is deprecated and will be removed in a future release. mmalc. From amy at afe.net Mon Jul 3 10:34:53 2000 From: amy at afe.net (Amy Reynolds) Date: Mon Jul 3 09:34:53 2000 Subject: lost data Message-ID: All, We are running a webobjects application in combination with an OpenBase database and red hat linux web server. In the admin section of the site, we list 15 products per page and allow 3 fields of the 10 on the page to be edited. Our admins NEVER use the back button (by penalty of death), but nonetheless the price field on a couple products in the list of 15 will zero out occasionally when changes are saved. We are in the process of carefully combing through our code and the SQL generated, etc. My question for the group is -- has anyone experienced something similar, especially those of you using OpenBase? This problem is proving very tricky to pinpoint. Any information regarding similar occurrences could prove helpful. Thanks, Amy From michael at stb.nccom.com Mon Jul 3 10:50:50 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Mon Jul 3 09:50:50 2000 Subject: EOKeyBinding warning - regarding capitalized key References: Message-ID: <3960BD5C.F90E31F3@getasia.com> > > Ok, what is gained by using this convention? > > > EOKeyValueCoding works as advertised, as do a number of other bindings (e.g. > in WOBuilder). And why doesn't EOKeyValueCoding work with upper case letters? Do upper case letters mean something else (not obviously documented?) This argument sounds like "EOKeyValueCoding will work better if you follow the convention because it won't work at all if you don't.". > > Keep in mind that previously, every table I've built has used IDFoo for > > the keys for table Foo. This has the advantage that all of the keys > > (primary, foreign, etc) get placed together. They normally are not class > > properties, but every once in a while, ... > > > I'm not sure why what you call the table is relevant? > > mmalc. It's not the table name. IDCustomer begins with an upper case I. EOModeler gives a consistency warning on it even though it isn't a class property. And, on rare occasions, that IDblah does need to be a class property (a three-way join table, for a M/M relationship involving three tables). From mhinca at hotpop.com Mon Jul 3 10:59:08 2000 From: mhinca at hotpop.com (Michael Henderson) Date: Mon Jul 3 09:59:08 2000 Subject: How to reference a WO website ? Message-ID: Hi, This the way I started at one client's site, but never completed. If anyone else has other ideas I'd like to hear them. 1. Read about robots at: http://info.webcrawler.com/mak/projects/robots/robots.html - great reference material. 2. buy BrowserHawk from www.cyscape.com - it will make detecting robots (and lots more) much easier. - it does not directly support WebObjects but it can be made to work (it's a jar file after all!) 3. Work out which parts of your site are suitable for indexing by a robot 4. Configure your web-server to get rid of the cgi-bin from the URLs in your WOApp (most robots will only follow 'static' URLs) 5. Don't use form submission for navigation from the robot's start page to the pages you want indexed. (most robots won't follow form submissions). 6. Design your app so that meta keywords are inserted in the head section which are appropriate for the page. - better indexing of your pages. 7. Make sure that your app can deal with user's clicking through from a search engine results page on a WO URL with an abandoned session (referer header anyone?). 8. Download an open-source robot & search-engine, such as htdig from www.htdig.org set it up and index your own site - you might even be able to keep it in your site and integrate a full text search Regards, Michael Henderson Web Application Construction with WebObjects www: http://www.behindthesite.com email: mhenderson@behindthesite.com -----Original Message----- From: webobjects-admin@omnigroup.com [mailto:webobjects-admin@omnigroup.com]On Behalf Of Gregory Bernard Sent: Monday, July 03, 2000 1:40 PM To: WebObjects Mailing list Subject: How to reference a WO website ? Dear users, How would you proceed to reference a web site that uses WebObjects ? The first page of our site is dynamicŠ  We've got problem to have a high ranking level on the various search engines. Any idea will be welcome. ________________________________________________ «?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Grégory Bernard 10, rue vauvilliers Directeur Internet 75001 Paris France Groupe Multimédia tel : +(33) 1 40 26 79 85 ________________________________________________ «?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§«?»¥«?»§ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ _______________________________________________ WebObjects mailing list WebObjects@omnigroup.com http://www.omnigroup.com/mailman/listinfo/webobjects From ghopson at novazen.com Mon Jul 3 11:21:40 2000 From: ghopson at novazen.com (Geoff Hopson) Date: Mon Jul 3 10:21:40 2000 Subject: Barcode font?? Message-ID: <200007031721.KAA16258@scyther.omnigroup.com> Does anyone have a working barcode font that will work in WebObjects apps, plus ReportMill? Thanks in advance, Geoff From info at iSOLUTION.de Mon Jul 3 11:31:05 2000 From: info at iSOLUTION.de (Alexander Schneider) Date: Mon Jul 3 10:31:05 2000 Subject: Problems with installing Deployment on Solaris Message-ID: Hello, I have seen that Bruce Fancher (way back) too had problems installing WO-Deployment on Solaris. I have Solaris 8 for Intel installed on a box and now I am trying to install deployment WO 4.5. I get the following error when I try to install either from CD or from local drive: ------------------------------------ Please enter license string: xxxxx ./pdo_licensekey: syntax error at line 1: ´(´ unexpected Please try again. ------------------------------------ But if I try again the same happens again. Anyone knows a solution? Regards Alexander Schneider -- __________________________________ iSOLUTION - Alexander Schneider Rathausallee 10 53757 Sankt Augustin T 02241 921 567-0 F 02241 921 567-89 as@iSOLUTION.de www.iSOLUTION.de From kieren_macmillan at mac.com Mon Jul 3 11:39:26 2000 From: kieren_macmillan at mac.com (Kieren Richard MacMillan) Date: Mon Jul 3 10:39:26 2000 Subject: [REPOST] adding third-party classes (.jar, .zip, etc.) to a project In-Reply-To: Message-ID: Hey Sorry for the repost, but this issue is getting critical quickly -- I haven't been able to get this to work, and it looks like adding third-party classes will be increasingly necessary in this project... Thanks for any quick responses anyone can give! Kieren. ---------- Hello, all! In building my statistics program, rather than reinvent the wheel, I scoured the 'net and found the JSci.* classes, which include several necessary methods (e.g. Chi-Squared Distribution). Now I would like to add this set of classes to my WOProject. I've searched the archive, as well as read the article on the subject at . However, I still have questions, so I hope someone can help... 0. I think I have both .jar and .zip (source) files -- which is recommended? 1. My applet source is in Subproject --> ClientSideJava.subproj, but the classes are supposed to be put into Subproject --> CommonJava.subproj. Do imports across such path boundaries work automagically, or do I have to add the class to my ClientSideJava.subproj as well? 2. If I've followed the instruction in the TIL article (including setting the NSJavaUserPath in the CustomInfo.plist file and modifying the OTHER_CLASSPATH line in the Makefile.preamble file), is there anything to worry about when I move to deploy on another machine? 3. When I call the new method in my applet code, I get an error. Do I have to use "import JSci.maths.statistics.*" in my code, or should it be there automatically? 4. Any other words of advice? Thanks a (new Integer(1,000,000))!! Kieren. From bmarquis at ogse.com Mon Jul 3 11:53:05 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Mon Jul 3 10:53:05 2000 Subject: WO compiling on HP-UX Message-ID: I've made some progress! Added /usr/lib at the end of LPATH and I can now get the WO Examples to compile. I'm now getting: ld: /disk5/tempECDemo/ogcommerce-java/ogcommerce.build/objects-optimized/NSFrame work_ogcommerce.o: Not a valid object file (invalid system id) when I try to compile my framework. > -----Original Message----- > From: Pezzi, Robbyn J CA [SMTP:Robbyn.Pezzi@js.ca.ngb.army.mil] > Sent: Monday, July 03, 2000 12:05 PM > To: 'Brian P. Marquis' > Subject: RE: WO compiling on HP-UX > > Brian, > > Unfortunately, the two systems I had been using are TU at the moment. > However, below is something that may help you. It is from the "HP-UX > Post-Installation Steps" in the apple documentation (info-center). I know > I appended the LPATH to include all of the ones they show below in the > documentation. > > Also think you should be able to do a : > find / -name libpdo* > And it will tell you the file is located at. Then you would also know > what directory needs to be in the path. > > Tell me if things still are not going well. > > robbyn > > --------------- > Setting the LPATH and SHLIB_PATH Environment Variables > Set the LPATH environment variable to an appropriate value for your > installation, with the following prepended to it (enter the following all > on one line): > > $NEXT_ROOT/Local/Developer/Libraries:$NEXT_ROOT/Developer/Libraries:$NEXT_ > ROOT/Local/Library/Executables:$NEXT_ROOT/Library/Executables:$NEXT_ROOT/ > Library/JDK/lib > > Also set the SHLIB_PATH to the value of LPATH with: > > setenv SHLIB_PATH "$LPATH" > -------------- > From dwestner at apple.com Mon Jul 3 11:53:11 2000 From: dwestner at apple.com (Dominik Westner) Date: Mon Jul 3 10:53:11 2000 Subject: Problems with installing Deployment on Solaris In-Reply-To: Message-ID: WebObjects does only run on Solaris for SPARC not on the Intel platform. Greetings Dominik > From: Alexander Schneider > Date: Mon, 03 Jul 2000 19:30:42 +0200 > To: webobjects@omnigroup.com > Subject: Problems with installing Deployment on Solaris > > Hello, > > I have seen that Bruce Fancher (way back) too had problems installing > WO-Deployment on Solaris. > > I have Solaris 8 for Intel installed on a box and now I am trying to > install deployment WO 4.5. > > I get the following error when I try to install either from CD or > from local drive: > > ------------------------------------ > Please enter license string: xxxxx > > ./pdo_licensekey: syntax error at line 1: ´(´ unexpected > > Please try again. > ------------------------------------ > > But if I try again the same happens again. > > Anyone knows a solution? > > Regards > Alexander Schneider > -- > __________________________________ > iSOLUTION - Alexander Schneider > Rathausallee 10 53757 Sankt Augustin > T 02241 921 567-0 F 02241 921 567-89 > as@iSOLUTION.de www.iSOLUTION.de > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > From scott at openbase.com Mon Jul 3 12:04:58 2000 From: scott at openbase.com (Scott Keith) Date: Mon Jul 3 11:04:58 2000 Subject: lost data Message-ID: <200007031805.OAA19148@nantucket.net> > but nonetheless > the price field on a couple products in the list of 15 will zero out > occasionally when changes are saved. Make sure the update is followed by a successful commit. Otherwise it may automatically rollback. This is probably what is happening. You may want to try turning on the SQL output. You can do this by using the -print_sql argument when you run your WebObjects application. You should see the SQL when you update & commit. Send this to me and I'll be happy to help you figure out what is going on. BTW, We haven't released OpenBase on Linux (WebObjects 4.5 doesn't run there either). What exactly are you running and how? - Scott ----------------------------- Scott Keith OpenBase International Ltd. scott@openbase.com v: 603.547.8404 f:603.547.2423 From bmarquis at ogse.com Mon Jul 3 12:05:47 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Mon Jul 3 11:05:47 2000 Subject: WO compiling on HP-UX Message-ID: Got it to compile! I removed the .build and .framework directories and ran make (after getting the LPATH stuff fixed!). Thanks to all who replied to me, both on the list and privately! ----------------------------------- Brian Marquis Internet Programmer Orion Group Software Engineers 219-233-3401 Fax: 219-239-3348 http://www.ogse.com mailto:bmarquis@ogse.com ----------------------------------- > -----Original Message----- > From: Brian P. Marquis [SMTP:bmarquis@ogse.com] > Sent: Monday, July 03, 2000 12:59 PM > To: 'rpezzi@fix.net' > Cc: Multiple recipients of list (E-mail) > Subject: RE: WO compiling on HP-UX > > I've made some progress! Added /usr/lib at the end of LPATH and I can now > get the WO Examples to compile. > > I'm now getting: > > ld: > /disk5/tempECDemo/ogcommerce-java/ogcommerce.build/objects-optimized/NSFra > me > work_ogcommerce.o: Not a valid object file (invalid system id) > > when I try to compile my framework. > > > -----Original Message----- > > From: Pezzi, Robbyn J CA [SMTP:Robbyn.Pezzi@js.ca.ngb.army.mil] > > Sent: Monday, July 03, 2000 12:05 PM > > To: 'Brian P. Marquis' > > Subject: RE: WO compiling on HP-UX > > > > Brian, > > > > Unfortunately, the two systems I had been using are TU at the moment. > > However, below is something that may help you. It is from the "HP-UX > > Post-Installation Steps" in the apple documentation (info-center). I > know > > I appended the LPATH to include all of the ones they show below in the > > documentation. > > > > Also think you should be able to do a : > > find / -name libpdo* > > And it will tell you the file is located at. Then you would also know > > what directory needs to be in the path. > > > > Tell me if things still are not going well. > > > > robbyn > > > > --------------- > > Setting the LPATH and SHLIB_PATH Environment Variables > > Set the LPATH environment variable to an appropriate value for your > > installation, with the following prepended to it (enter the following > all > > on one line): > > > > > $NEXT_ROOT/Local/Developer/Libraries:$NEXT_ROOT/Developer/Libraries:$NEXT_ > > > ROOT/Local/Library/Executables:$NEXT_ROOT/Library/Executables:$NEXT_ROOT/ > > Library/JDK/lib > > > > Also set the SHLIB_PATH to the value of LPATH with: > > > > setenv SHLIB_PATH "$LPATH" > > -------------- > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From igsolt at yahoo.com Mon Jul 3 12:11:25 2000 From: igsolt at yahoo.com (Igor) Date: Mon Jul 3 11:11:25 2000 Subject: NSAPI adaptor recompiling for iPlanet Message-ID: <007501bfe519$f1bece20$b19b0dd0@quickintl.com> This is a multi-part message in MIME format. ------=_NextPart_000_0072_01BFE4F8.6A3DA370 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Hi, Does anyone know how to recompile WO 4.0.1 NSAPI adaptor on Solaris for = Netscape Enterprise Server 4.0(iPlanet). There is a documentation how to do it for Netscape 3.5 which doesn't = work for iPlanet. Your help would be greatly appreciated. Thanks in advance. ------=_NextPart_000_0072_01BFE4F8.6A3DA370 Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable
Hi,
Does anyone know how to recompile WO = 4.0.1 NSAPI=20 adaptor on Solaris for Netscape Enterprise Server = 4.0(iPlanet).
There is a documentation how to do it = for Netscape=20 3.5 which doesn't work for iPlanet.
 
Your help would be greatly=20 appreciated.
Thanks in advance.
 
------=_NextPart_000_0072_01BFE4F8.6A3DA370-- __________________________________________________ Do You Yahoo!? Talk to your friends online with Yahoo! Messenger. http://im.yahoo.com From bmarquis at ogse.com Mon Jul 3 12:36:13 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Mon Jul 3 11:36:13 2000 Subject: No net in shared library path on HP-UX Message-ID: I am getting the following exception when I try to instantiate a subclass of java.net.Socket on HPUX version 11. java.lang.UnsatisfiedLinkError: no net in shared library path at java.lang.Runtime.loadLibrary(Runtime.java) at java.lang.System.loadLibrary(System.java) at at at mcbaSocket.(mcbaSocket.java:9) at Session.getSocket(Session.java:37) at Main.processLogin(Main.java:25) ************* import java.net.*; import java.io.*; public class mcbaSocket extends java.net.Socket { mcbaSocket( String host, int port ) throws IOException, UnknownHostException { super(host,port); System.out.print("Connected to "+host+":"+String.valueOf(port)); } public String process(String datatosend) throws IOException { DataOutputStream hpout; BufferedReader hpin; hpout = new DataOutputStream(new BufferedOutputStream(getOutputStream())); hpin = new BufferedReader(new InputStreamReader(getInputStream())); hpout.writeBytes( datatosend + "\n"); hpout.flush(); return hpin.readLine(); } } From ehermanson at gofish.com Mon Jul 3 13:10:37 2000 From: ehermanson at gofish.com (Eric Hermanson) Date: Mon Jul 3 12:10:37 2000 Subject: Spell Checker, Zip Code Lookup Message-ID: <001d01bfe521$d55a0030$1501aa0a@seafax.com> This is a multi-part message in MIME format. ------=_NextPart_000_001A_01BFE500.4DB5BD20 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, Does anyone know of an Obj-C interface to 'ispell' (or other full = featured public domain spell checker)? Or an Obj-C ZipCode --> City/State lookup system? (either freeware or commercial)? - Eric ------=_NextPart_000_001A_01BFE500.4DB5BD20 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi,
 
Does anyone know of an = Obj-C=20 interface to 'ispell' (or other full featured public domain spell=20 checker)?
 
Or an Obj-C ZipCode --> City/State = lookup=20 system?
 
(either freeware or = commercial)?
 
- Eric
 
------=_NextPart_000_001A_01BFE500.4DB5BD20-- From leon at drakeassociates.com Mon Jul 3 14:32:21 2000 From: leon at drakeassociates.com (Leon Amdour) Date: Mon Jul 3 13:32:21 2000 Subject: N elements -- one action Message-ID: <4.3.2.7.1.20000703132630.00b08dc0@drakeassociates.com> Hi, evreyone. I'd like to ask for your advice. I have a list of hyperlinks on my page. Number of links is unkown at design time (values come from database; I use repetition). After user clicks on any of them I need to go to another page (same for all links), but initialized with different values depending on the clicked link. Basically, I need to pass on to the new page an ID. What's the best way to do without using JavaScript? (I could set value of an ainvisible field to ID of the clicked link and read in my action method). Solutions involving action methods as well as going directly to the new page are acceptable. Thanks in advance. Leon From richard at csarc.otago.ac.nz Mon Jul 3 14:36:44 2000 From: richard at csarc.otago.ac.nz (Richard Lewis-Shell) Date: Mon Jul 3 13:36:44 2000 Subject: Deployment system problem (shell script) Message-ID: <007601bfe52e$50c35c60$01010101@mirrim> Hi all, We have a simple script we want to use to start an instance of our app, and restart it when necessary - it's very similar to the recently posted script from the thread "Replacing Monitor & 4.5 scheduling problems". For long and boring reasons, when it comes to killing the apps manually, we are unable to reliably detect the name of the app using ps, so the best solution would seem to be to kill the script and have the script's child processes (ie. the WOApp) also die. But when we kill the script, the WOApp does not die, rather it switches its parent PID to 1, and carries on. If this script is run with a dummy process (eg. sleep) instead of a WOApp, it works ie. kill the script, and its child processes die too. But a WOApp child process doesn't seem to die so easily. Does anyone know of a way to get any standard shell (so far we have tried sh (posix), and csh) to kill the child WOApp? Any help appreciated, Richard PS. the long and boring reasons are: we are using HP-UX - which limits how much of the command line is viewable from ps, and we have to start the apps from an unrelated dir so any coredumps end up in one place, ending up in a rather long absolute path to the binary, which in some cases truncates a good (bad?) amount of the app name. PPS. if it makes any difference, this is WO4 From j-rochkind at nwu.edu Mon Jul 3 14:43:33 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Mon Jul 3 13:43:33 2000 Subject: N elements -- one action In-Reply-To: <4.3.2.7.1.20000703132630.00b08dc0@drakeassociates.com> Message-ID: <4.2.2.20000703154317.02108c78@hecky.acns.nwu.edu> In the action method for the hyperlink, you can figure out which hyperlink was clicked on. What variable is bound to the 'item' in the WORepetition? You can look at this variable in the action method, and it will magically be bound to the object corresponding to the iteration of the repetition in which the particular hyperlink chosen was output. Make sense? --Jonathan At 01:32 PM 7/3/2000 -0700, you wrote: >Hi, evreyone. > >I'd like to ask for your advice. >I have a list of hyperlinks on my page. Number of links is unkown at >design time (values come from database; I use repetition). After user >clicks on any of them I need to go to another page (same for all links), >but initialized with different values depending on the clicked link. >Basically, I need to pass on to the new page an ID. What's the best way to >do without using JavaScript? (I could set value of an ainvisible field to >ID of the clicked link and read in my action method). Solutions involving >action methods as well as going directly to the new page are acceptable. > >Thanks in advance. > >Leon > >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From wostas at mac.com Mon Jul 3 14:49:38 2000 From: wostas at mac.com (Stas Pietrucha) Date: Mon Jul 3 13:49:38 2000 Subject: N elements -- one action Message-ID: <200007032059.QAA11991@eagle.mwc.edu> When you use a repetition, you will have some variable bound to the "item". Bind an action, "foo" to the hyperlink, then in foo(), the variable bound to "item" will correspond to the exact hyperlink you clicked! Just pass the item to the next page before you return it. public Person personIter; // bound to the repetition's "item" public NSArray arrayOfUnknownPersonsFromTheDatabase; // bound to the repetition's "list" public WOComponent foo() { SomePage nextPage = (SomePage)pageWithName("SomePage"); nextPage.setPerson(personIter); return nextPage; } That's the magic of WebObjects! You wrote: >Hi, evreyone. > >I'd like to ask for your advice. >I have a list of hyperlinks on my page. Number of links is unkown at design >time (values come from database; I use repetition). After user clicks on >any of them I need to go to another page (same for all links), but >initialized with different values depending on the clicked link. Basically, >I need to pass on to the new page an ID. What's the best way to do without >using JavaScript? (I could set value of an ainvisible field to ID of the >clicked link and read in my action method). Solutions involving action >methods as well as going directly to the new page are acceptable. > >Thanks in advance. > >Leon > >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects Stas Pietrucha Houston, TX http://www.wostas.com/ From leon at drakeassociates.com Mon Jul 3 14:53:17 2000 From: leon at drakeassociates.com (Leon Amdour) Date: Mon Jul 3 13:53:17 2000 Subject: [DONE] N elements -- one action In-Reply-To: <4.2.2.20000703154317.02108c78@hecky.acns.nwu.edu> References: <4.3.2.7.1.20000703132630.00b08dc0@drakeassociates.com> Message-ID: <4.3.2.7.1.20000703135316.00adaf00@drakeassociates.com> Cool stuff! That was easy. Thanks a lot. Leon >In the action method for the hyperlink, you can figure out which hyperlink >was clicked on. What variable is bound to the 'item' in the >WORepetition? You can look at this variable in the action method, and it >will magically be bound to the object corresponding to the iteration of >the repetition in which the particular hyperlink chosen was output. Make sense? > >--Jonathan > >At 01:32 PM 7/3/2000 -0700, you wrote: >>Hi, evreyone. >> >>I'd like to ask for your advice. >>I have a list of hyperlinks on my page. Number of links is unkown at >>design time (values come from database; I use repetition). After user >>clicks on any of them I need to go to another page (same for all links), >>but initialized with different values depending on the clicked link. >>Basically, I need to pass on to the new page an ID. What's the best way >>to do without using JavaScript? (I could set value of an ainvisible field >>to ID of the clicked link and read in my action method). Solutions >>involving action methods as well as going directly to the new page are >>acceptable. >> >>Thanks in advance. >> >>Leon >> >>_______________________________________________ >>WebObjects mailing list >>WebObjects@omnigroup.com >>http://www.omnigroup.com/mailman/listinfo/webobjects > > > From bmarquis at ogse.com Mon Jul 3 15:10:06 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Mon Jul 3 14:10:06 2000 Subject: [DONE] N elements -- one action Message-ID: Be certain to check that this works when the user clicks the back button. I ran into problems with repetitions where I was using a list which varied in length. In my case, it was a drill-down page of categories and it's children. It's easy enough to work around the problems, just be certain to test backtracking when you use repetitions. > -----Original Message----- > From: Leon Amdour [SMTP:leon@drakeassociates.com] > Sent: Monday, July 03, 2000 3:54 PM > To: Jonathan Rochkind; webobjects@omnigroup.com > Subject: [DONE] N elements -- one action > > Cool stuff! That was easy. Thanks a lot. > > Leon > > >In the action method for the hyperlink, you can figure out which > hyperlink > >was clicked on. What variable is bound to the 'item' in the > >WORepetition? You can look at this variable in the action method, and it > > >will magically be bound to the object corresponding to the iteration of > >the repetition in which the particular hyperlink chosen was output. Make > sense? > > > >--Jonathan > > > >At 01:32 PM 7/3/2000 -0700, you wrote: > >>Hi, evreyone. > >> > >>I'd like to ask for your advice. > >>I have a list of hyperlinks on my page. Number of links is unkown at > >>design time (values come from database; I use repetition). After user > >>clicks on any of them I need to go to another page (same for all links), > > >>but initialized with different values depending on the clicked link. > >>Basically, I need to pass on to the new page an ID. What's the best way > >>to do without using JavaScript? (I could set value of an ainvisible > field > >>to ID of the clicked link and read in my action method). Solutions > >>involving action methods as well as going directly to the new page are > >>acceptable. > >> > >>Thanks in advance. > >> > >>Leon > >> > >>_______________________________________________ > >>WebObjects mailing list > >>WebObjects@omnigroup.com > >>http://www.omnigroup.com/mailman/listinfo/webobjects > > > > > > > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From froy at singleentry.com Mon Jul 3 16:01:03 2000 From: froy at singleentry.com (Fabien Roy) Date: Mon Jul 3 15:01:03 2000 Subject: Deployment system problem (shell script) Message-ID: <200007032200.RAA05561@bob.singleentry.com> Some suggestions: Try to get a bsd "ps" for HPUX from the gnu. BTW Solaris has kept the bsd ps in "/usr/ucb" and I really understand why :-). In the ObjC launcher you could write (using NSProcessInfo and getpid()) to a file the process id and the interesting arguments of the process. I would suggest to use the process id concatenated with the name of the process as the file name. Then you will have to remove that file when you kill the process. Hope that helps. Fabien -- |\ _,,,---,,_ Fabien Roy /,`.-'`' -. ;-;;,_ Singleentry.com |,4- ) )-,_. ,\ ( `'-' 107 RR 620 South, suite 117 '---''(_/--' `-'\_) Lakeway, TX 78734 Tel: (512) 266-6379 ext 1350 Fax: (512) 266-6375 Mob: (512) 796-9854 http://www.singleentry.com From michael at stb.nccom.com Mon Jul 3 16:14:47 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Mon Jul 3 15:14:47 2000 Subject: Deployment system problem (shell script) References: <200007032200.RAA05561@bob.singleentry.com> Message-ID: <39611015.6B88334E@getasia.com> You want to use 'trap' in the shell script to catch the kill signal. You can then kill the WOApp explicitly. Most likely, you'll want to start the WOApp in the background, save it in a variable, and then use that in your kill statement. Fabien Roy wrote: > > Some suggestions: > > Try to get a bsd "ps" for HPUX from the gnu. BTW Solaris has kept > the bsd ps in "/usr/ucb" and I really understand why :-). > > In the ObjC launcher you could write (using NSProcessInfo and > getpid()) to a file the process id and the interesting arguments of > the process. I would suggest to use the process id concatenated with > the name of the process as the file name. Then you will have to > remove that file when you kill the process. > > Hope that helps. > > Fabien > > -- > |\ _,,,---,,_ Fabien Roy > /,`.-'`' -. ;-;;,_ Singleentry.com > |,4- ) )-,_. ,\ ( `'-' 107 RR 620 South, suite 117 > '---''(_/--' `-'\_) Lakeway, TX 78734 > Tel: (512) 266-6379 ext 1350 > Fax: (512) 266-6375 > Mob: (512) 796-9854 > http://www.singleentry.com > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From richard at csarc.otago.ac.nz Mon Jul 3 16:46:52 2000 From: richard at csarc.otago.ac.nz (Richard Lewis-Shell) Date: Mon Jul 3 15:46:52 2000 Subject: Deployment system problem (shell script) In-Reply-To: <39611015.6B88334E@getasia.com> Message-ID: <008401bfe540$4e3ad790$01010101@mirrim> Thanks so far... The ps man page _claims_ that it prints all the info avaiable from the kernel, so I am not convinced that another flavour of ps will have any more luck. As for background launching/trapping signals, I tried this, without much luck. The point of the script is to firstly start the app and then restart it when/if it finishes. Thus the launch command sits within a while (true) loop. If I start it in the background, this will spawn processes like there's no tomorrow, and bad things will happen. I tried grabbing the pid of the app once it was started in the background, then returning it to the foreground (fg), and tried to use a signal trap to stop the now known child pid, but the signal routine is not executed until the foreground process completes! I'm going round in circles. Perhaps the only option is to use pid files, or to search for processes started by the script (ie. ppid = script pid), and kill them after the script has been killed. This seems a little more fragile than necessary - I just thought there might be some cunning way of telling a shell script to kill its children when it dies... Richard > -----Original Message----- > From: Michael Gersten [mailto:michael@getasia.com] > Sent: Tuesday, 4 July 2000 10:14 > To: froy@singleentry.com > Cc: Richard Lewis-Shell; webobjects@omnigroup.com > Subject: Re: Deployment system problem (shell script) > > > You want to use 'trap' in the shell script to catch the kill signal. You > can then kill the WOApp explicitly. > > Most likely, you'll want to start the WOApp in the background, save it > in a variable, and then use that in your kill statement. > > Fabien Roy wrote: > > > > Some suggestions: > > > > Try to get a bsd "ps" for HPUX from the gnu. BTW Solaris has kept > > the bsd ps in "/usr/ucb" and I really understand why :-). > > > > In the ObjC launcher you could write (using NSProcessInfo and > > getpid()) to a file the process id and the interesting arguments of > > the process. I would suggest to use the process id concatenated with > > the name of the process as the file name. Then you will have to > > remove that file when you kill the process. > > > > Hope that helps. > > > > Fabien > > > > -- > > |\ _,,,---,,_ Fabien Roy > > /,`.-'`' -. ;-;;,_ Singleentry.com > > |,4- ) )-,_. ,\ ( `'-' 107 RR 620 South, suite 117 > > '---''(_/--' `-'\_) Lakeway, TX 78734 > > Tel: (512) 266-6379 ext 1350 > > Fax: (512) 266-6375 > > Mob: (512) 796-9854 > > http://www.singleentry.com > > > > _______________________________________________ > > WebObjects mailing list > > WebObjects@omnigroup.com > > http://www.omnigroup.com/mailman/listinfo/webobjects > From michael at stb.nccom.com Mon Jul 3 17:05:55 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Mon Jul 3 16:05:55 2000 Subject: Deployment system problem (shell script) References: <008401bfe540$4e3ad790$01010101@mirrim> Message-ID: <39611C0C.34AD3A73@getasia.com> Ahh -- -- try using a '-ww' argument to your ps. On ever ps I've seen, adding w's makes it wider. However, I've seen some where '-ww' means 'infinite width', and some where each 'w' means 'add 8 to the width'. Richard Lewis-Shell wrote: > > Thanks so far... > > The ps man page _claims_ that it prints all the info avaiable from the kernel, > so I am not convinced that another flavour of ps will have any more luck. > > As for background launching/trapping signals, I tried this, without much luck. > The point of the script is to firstly start the app and then restart it when/if > it finishes. Thus the launch command sits within a while (true) loop. If I > start it in the background, this will spawn processes like there's no tomorrow, > and bad things will happen. I tried grabbing the pid of the app once it was > started in the background, then returning it to the foreground (fg), and tried > to use a signal trap to stop the now known child pid, but the signal routine is > not executed until the foreground process completes! > > I'm going round in circles. Perhaps the only option is to use pid files, or to > search for processes started by the script (ie. ppid = script pid), and kill > them after the script has been killed. This seems a little more fragile than > necessary - I just thought there might be some cunning way of telling a shell > script to kill its children when it dies... > > Richard > > > -----Original Message----- > > From: Michael Gersten [mailto:michael@getasia.com] > > Sent: Tuesday, 4 July 2000 10:14 > > To: froy@singleentry.com > > Cc: Richard Lewis-Shell; webobjects@omnigroup.com > > Subject: Re: Deployment system problem (shell script) > > > > > > You want to use 'trap' in the shell script to catch the kill signal. You > > can then kill the WOApp explicitly. > > > > Most likely, you'll want to start the WOApp in the background, save it > > in a variable, and then use that in your kill statement. > > > > Fabien Roy wrote: > > > > > > Some suggestions: > > > > > > Try to get a bsd "ps" for HPUX from the gnu. BTW Solaris has kept > > > the bsd ps in "/usr/ucb" and I really understand why :-). > > > > > > In the ObjC launcher you could write (using NSProcessInfo and > > > getpid()) to a file the process id and the interesting arguments of > > > the process. I would suggest to use the process id concatenated with > > > the name of the process as the file name. Then you will have to > > > remove that file when you kill the process. > > > > > > Hope that helps. > > > > > > Fabien > > > > > > -- > > > |\ _,,,---,,_ Fabien Roy > > > /,`.-'`' -. ;-;;,_ Singleentry.com > > > |,4- ) )-,_. ,\ ( `'-' 107 RR 620 South, suite 117 > > > '---''(_/--' `-'\_) Lakeway, TX 78734 > > > Tel: (512) 266-6379 ext 1350 > > > Fax: (512) 266-6375 > > > Mob: (512) 796-9854 > > > http://www.singleentry.com > > > > > > _______________________________________________ > > > WebObjects mailing list > > > WebObjects@omnigroup.com > > > http://www.omnigroup.com/mailman/listinfo/webobjects > > From michael at stb.nccom.com Mon Jul 3 17:10:25 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Mon Jul 3 16:10:25 2000 Subject: Deployment system problem (shell script) References: <008401bfe540$4e3ad790$01010101@mirrim> Message-ID: <39611D1F.31060DBF@getasia.com> > As for background launching/trapping signals, I tried this, without much luck. > The point of the script is to firstly start the app and then restart it when/if > it finishes. Thus the launch command sits within a while (true) loop. If I > start it in the background, this will spawn processes like there's no tomorrow, > and bad things will happen. I tried grabbing the pid of the app once it was > started in the background, then returning it to the foreground (fg), and tried > to use a signal trap to stop the now known child pid, but the signal routine is > not executed until the foreground process completes! Ok, then try something like this: while : do while [ kill -0 $CHILD ] do sleep $DELAY done # code to restart the now dead app done Adjust $DELAY as needed -- '2' should work fine. > I'm going round in circles. Perhaps the only option is to use pid files, or to > search for processes started by the script (ie. ppid = script pid), and kill > them after the script has been killed. This seems a little more fragile than > necessary - I just thought there might be some cunning way of telling a shell > script to kill its children when it dies... You can, actually. 'kill 0' will kill everything in the process group. Before job control (read: sh, not csh, not bash), every backgrounded process was in the shell's process group. Job control shells start each backgrounded child in a new process group. > Richard > > > -----Original Message----- > > From: Michael Gersten [mailto:michael@getasia.com] > > Sent: Tuesday, 4 July 2000 10:14 > > To: froy@singleentry.com > > Cc: Richard Lewis-Shell; webobjects@omnigroup.com > > Subject: Re: Deployment system problem (shell script) > > > > > > You want to use 'trap' in the shell script to catch the kill signal. You > > can then kill the WOApp explicitly. > > > > Most likely, you'll want to start the WOApp in the background, save it > > in a variable, and then use that in your kill statement. > > > > Fabien Roy wrote: > > > > > > Some suggestions: > > > > > > Try to get a bsd "ps" for HPUX from the gnu. BTW Solaris has kept > > > the bsd ps in "/usr/ucb" and I really understand why :-). > > > > > > In the ObjC launcher you could write (using NSProcessInfo and > > > getpid()) to a file the process id and the interesting arguments of > > > the process. I would suggest to use the process id concatenated with > > > the name of the process as the file name. Then you will have to > > > remove that file when you kill the process. > > > > > > Hope that helps. > > > > > > Fabien > > > > > > -- > > > |\ _,,,---,,_ Fabien Roy > > > /,`.-'`' -. ;-;;,_ Singleentry.com > > > |,4- ) )-,_. ,\ ( `'-' 107 RR 620 South, suite 117 > > > '---''(_/--' `-'\_) Lakeway, TX 78734 > > > Tel: (512) 266-6379 ext 1350 > > > Fax: (512) 266-6375 > > > Mob: (512) 796-9854 > > > http://www.singleentry.com > > > > > > _______________________________________________ > > > WebObjects mailing list > > > WebObjects@omnigroup.com > > > http://www.omnigroup.com/mailman/listinfo/webobjects > > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From clread at mindspring.com Mon Jul 3 17:20:45 2000 From: clread at mindspring.com (Charles L. Read) Date: Mon Jul 3 16:20:45 2000 Subject: [REPOST] setup for WODisplayGroups leads to core dumps. In-Reply-To: clread@mindspring.com's message of "03 Jul 2000 08:31:24 -0500" References: <873dlr2vdf.fsf@mindspring.com> Message-ID: <874s665388.fsf@mindspring.com> Any help appreciated! --- reposting --- I have the following Main.java program (appended beneath). I have streamlined parts that I believe are not relevant. Observations: 0. The WODisplayGroups here fetch from a `Product' table. 1. In setupAccountInfo(), if I comment out the call to session().defaultEditingContext().insertObject(customer); things work ok, but in the CustomerAccountInfo component, changes to the Customer object are not saved when I call session().defaultEditingContext().saveChanges(); 2. If I comment out reference to the category1 WODispayGroup (ie, the code where category1 products are fetched), but execute the line session().defaultEditingContext().insertObject(customer); then things work ok. IE, changes to the Customer are object are saved. (Of course, we no longer have available references to the category1 products...) 3. The problem: if I run everything as is -- in particular, as soon as the 2nd WODisplayGroup, category1, enters into the code, the WO app dumps core as soon as the action method setupAccountInfo() is invoked. Inserting debugString()'s shows that setupAccountInfo() actually completes. So, I am suspicious there the coredump happens somewhere in the initialization for CustomerAccountInfo. Questions: A. Why should the call to session().defaultEditingContext().insertObject(customer); trigger a coredump? Eg, if that line is absent, things work ok (though nothing is saved to DB). B. When fetching N WODisplayGroups from the same table, is there any special work you need to do to setup the table before re-fetching for each new WODisplayGroup? Thanks! Charlie -- public class Main extends WOComponent { /** @TypeInfo Product */ protected Product product; // Holds list of products that customer has checked. protected NSMutableSet productCheckedList; // We create a display group for each category of product. protected WODisplayGroup category0DisplayGroup; protected WODisplayGroup category1DisplayGroup; public Main() { super(); category0DisplayGroup.setDelegate(new ProductDelegate("Product", "category", EOQualifier.QualifierOperatorLike, new String("Category0*"))); category0DisplayGroup.fetch(); category1DisplayGroup.setDelegate(new ProductDelegate("Product", "category", EOQualifier.QualifierOperatorLike, new String("Category1*"))); category1DisplayGroup.fetch(); } public Product product() { return product; } public void setProduct(Product p) { product = p; } public CustomerAccountInfo setupAccountInfo() { Customer customer = new Customer(); session().defaultEditingContext().insertObject(customer); CustomerAccountInfo nextPage = (CustomerAccountInfo)pageWithName("CustomerAccountInfo"); // Initialize your component here nextPage.setCustomer(customer); return nextPage; } } From john.zollinger at sundog.com Mon Jul 3 17:21:39 2000 From: john.zollinger at sundog.com (John Zollinger) Date: Mon Jul 3 16:21:39 2000 Subject: ProjectBuilder make question... In-Reply-To: <200007031902.MAA22423@scyther.omnigroup.com> Message-ID: Hi ya, I'm trying to use a different make tool, but project builder seems to have the parameters passed to the indicated build tool hard coded to be "-f Makefile". Does anyone know of a way to change that (short of hex editing the .exe)? I don't want it to pass anything, just execute the build tool I tell it, and then pass the parameters that I tell it too. Any ideas? Thanks! John Zollinger Sundog Technologies, Inc. john.zollinger@sundog.com http://www.sundog.com/ From richard at csarc.otago.ac.nz Mon Jul 3 19:14:30 2000 From: richard at csarc.otago.ac.nz (Richard Lewis-Shell) Date: Mon Jul 3 18:14:30 2000 Subject: Deployment system problem (shell script) In-Reply-To: <39611D1F.31060DBF@getasia.com> Message-ID: <008d01bfe555$1a970930$01010101@mirrim> Thanks Michael That 'polling' solution would work for us. FYI, '-w' does not work with HP-UX's ps - here is a snippet from the 10.20 ps man page: "Only a subset of the command line is saved by the kernel; as much of the command line will be displayed as is available." In case anyone is interested in our current, and hopefully final, solution, we decided to modify the 'stop' script to kill the child processes that might be orphaned after the 'loop' script is killed. Not quite as encapsulated as it could be, but the 'loop' script remains very simple (no background processes, no signal trapping), and only a couple more lines were needed in the 'stop' script. Phew - thanks all for your help, Richard > -----Original Message----- > From: Michael Gersten [mailto:michael@getasia.com] > Sent: Tuesday, 4 July 2000 11:09 > To: Richard Lewis-Shell > Cc: michael@stb.nccom.com; froy@singleentry.com; > webobjects@omnigroup.com > Subject: Re: Deployment system problem (shell script) > > > > As for background launching/trapping signals, I tried this, without > much luck. > > The point of the script is to firstly start the app and then > restart it when/if > > it finishes. Thus the launch command sits within a while (true) loop. If I > > start it in the background, this will spawn processes like there's > no tomorrow, > > and bad things will happen. I tried grabbing the pid of the app once it was > > started in the background, then returning it to the foreground > (fg), and tried > > to use a signal trap to stop the now known child pid, but the > signal routine is > > not executed until the foreground process completes! > > Ok, then try something like this: > > while : > do > while [ kill -0 $CHILD ] > do > sleep $DELAY > done > > # code to restart the now dead app > done > > Adjust $DELAY as needed -- '2' should work fine. > > > I'm going round in circles. Perhaps the only option is to use pid > files, or to > > search for processes started by the script (ie. ppid = script pid), and kill > > them after the script has been killed. This seems a little more > fragile than > > necessary - I just thought there might be some cunning way of > telling a shell > > script to kill its children when it dies... > > You can, actually. 'kill 0' will kill everything in the process group. > > Before job control (read: sh, not csh, not bash), every backgrounded > process was in the shell's process group. > > Job control shells start each backgrounded child in a new process group. > > > Richard > > > > > -----Original Message----- > > > From: Michael Gersten [mailto:michael@getasia.com] > > > Sent: Tuesday, 4 July 2000 10:14 > > > To: froy@singleentry.com > > > Cc: Richard Lewis-Shell; webobjects@omnigroup.com > > > Subject: Re: Deployment system problem (shell script) > > > > > > > > > You want to use 'trap' in the shell script to catch the kill signal. You > > > can then kill the WOApp explicitly. > > > > > > Most likely, you'll want to start the WOApp in the background, save it > > > in a variable, and then use that in your kill statement. > > > > > > Fabien Roy wrote: > > > > > > > > Some suggestions: > > > > > > > > Try to get a bsd "ps" for HPUX from the gnu. BTW Solaris has kept > > > > the bsd ps in "/usr/ucb" and I really understand why :-). > > > > > > > > In the ObjC launcher you could write (using NSProcessInfo and > > > > getpid()) to a file the process id and the interesting arguments of > > > > the process. I would suggest to use the process id concatenated with > > > > the name of the process as the file name. Then you will have to > > > > remove that file when you kill the process. > > > > > > > > Hope that helps. > > > > > > > > Fabien > > > > > > > > -- > > > > |\ _,,,---,,_ Fabien Roy > > > > /,`.-'`' -. ;-;;,_ Singleentry.com > > > > |,4- ) )-,_. ,\ ( `'-' 107 RR 620 South, suite 117 > > > > '---''(_/--' `-'\_) Lakeway, TX 78734 > > > > Tel: (512) 266-6379 ext 1350 > > > > Fax: (512) 266-6375 > > > > Mob: (512) 796-9854 > > > > http://www.singleentry.com > > > > > > > > _______________________________________________ > > > > WebObjects mailing list > > > > WebObjects@omnigroup.com > > > > http://www.omnigroup.com/mailman/listinfo/webobjects > > > > > > > _______________________________________________ > > WebObjects mailing list > > WebObjects@omnigroup.com > > http://www.omnigroup.com/mailman/listinfo/webobjects > From gsl at mail.utexas.edu Mon Jul 3 19:23:00 2000 From: gsl at mail.utexas.edu (G Shane Lewis) Date: Mon Jul 3 18:23:00 2000 Subject: Oracle connection questions Message-ID: <39614A63.6CEA8918@mail.utexas.edu> Two beginner questions: I've just installed WO on Win2k, and when I try to initiate a connection using the Oracle driver, after typing my info into the logon panel, I get an empty error msg box. This happens in both the EOModeller and in the Project Builder. I have been able to get connected to the Oracle database via the generic ODBC driver in the EOModeller, but I'd prefer to use the native drivers if possible. The second problem is that my WOApplications suffer a connection time-out looking for a database. The status bar says: "Contacting localhost:1065", but it never finds it. This happens using the ODBC driver to try to retrieve data from Oracle. It also happens using the OpenBaseLite database offered as an example in the tutorials. This is frustrating because I was able to make this connection fine, running WO on NT Server. Any advice greatly appreciated. Shane Lewis gsl@mail.utexas.edu From rob at medicalhost.com Mon Jul 3 19:33:56 2000 From: rob at medicalhost.com (Robert A. Decker) Date: Mon Jul 3 18:33:56 2000 Subject: wml through monitor? Message-ID: <39613E24.746E8CC9@medicalhost.com> Has anyone written a Monitor equivalent that supports Wireless Markup Language for access through a device like a cell phone? thanks, rob From mlaster at metavillage.com Mon Jul 3 20:27:12 2000 From: mlaster at metavillage.com (Mike Laster) Date: Mon Jul 3 19:27:12 2000 Subject: CVS and *.WO, a bad match! In-Reply-To: <395B95D6.AB2404E7@getasia.com> Message-ID: <2904249.3171652011@[192.168.1.114]> *This message was transferred with a trial version of CommuniGate(tm) Pro* --On Thursday, June 29, 2000 1:30 PM -0500 Michael Gersten wrote: > I don't have a good solution, other than constantly copying the CVS > subdirectory out and in. > > I haven't tried bitkeeper yet, but it might not have that problem. (It > wants to replace CVS) As far as I know, nobody has ported bitkeeper to Mac OS X or Mac OS X Server yet. There seems to be a chicken-and-egg problem with doing this...the source is only available via bitkeeper... The only other solution I know of is Perforce (http://www.perforce.com). They had a binary for Rhapsody, but last time I checked it core dumped on Mac OS X Server 1.2 (worked fine in 1.02...something seems to have changed in the update). From brian at fortnocs.com Mon Jul 3 20:49:52 2000 From: brian at fortnocs.com (Brian Wotring) Date: Mon Jul 3 19:49:52 2000 Subject: Date -> NSGregorianDate Message-ID: <3.0.6.32.20000703195854.0134b3b0@mailhost.fortnocs.com> I have a Java class that has no WO code at all in it and I need to convert it's date() member and convert it into an NSGregorianDate object. Suggesstions? | Brian Wotring ( brian@fortnocs.com ) | Fort Nocs, Inc. | PGP Key ID: 0x9674763D From deninger at blue.weeg.uiowa.edu Mon Jul 3 21:57:15 2000 From: deninger at blue.weeg.uiowa.edu (Michael Deninger) Date: Mon Jul 3 20:57:15 2000 Subject: EOModeler Wackiness [Solved] Message-ID: Hi, I found my problem (with the help of DTS) and wanted to pass along what it was (so maybe someone else can learn from my mistake). Briefly, my display group was fetching only objects with an optional relationship. It turns out that if you flatten a relationship between entities where the relationship is optional, EO will return only those records with a relationship. Put another way, EO will not fetch and return*null* for a flattened relationship when there are no related records. I did not expect this. Is this a "feature" or something I should have expected (if so, what is the reason)? I was using this flattened relationship to sort my display group. I worked around this problem, but wondered what others (with a better understanding of WO/EO) thought. Michael Deninger The University of Iowa College of Pharmacy Phone: (319) 335-6513 deninger@blue.weeg.uiowa.edu From dneumann at apple.com Tue Jul 4 00:39:29 2000 From: dneumann at apple.com (David Neumann) Date: Mon Jul 3 23:39:29 2000 Subject: EOKeyBinding warning - regarding capitalized key Message-ID: <200007040638.XAA04153@scv3.apple.com> In the Java language and NeXT's ObjC conventions, methods and instance variables, begin with lower case. Constants and class names (another kind of constant) begin in uppercase. It makes it easier to just glance at code and see what's going on. Without these conventions, a line like this by itself is ambiguous: Foo.doSomething() Is Foo a class or is it a variable that happens to be capitalized. KeyValueCoding is a concept that actually is finding support in that new MS language and possibly in a future version of the JDK. The idea is to provide a general purpose way for objects to exchange data with each other. The protocol goes through various steps to push/pull a value... valueForKey checks for the presence of accessor methods, a valueForKey method, and ultimately an ivar. It prefers to use the method if present. But to use a method it has to use runtime facilities to check for the presence of the method. This takes time. If you have a convention for methods used as accessors for key value coding, you can perform this faster and perhaps more importantly, you can do it more reliably. So there are 2 wins: clearer code, and better runtime execution. BTW every single property you bind to anything in a .wod, and all the dots in .wod syntax are examples of key value coding in action. It is NOT just used by EOs, its used in WOF -- a LOT. If KVC didn't exist, you couldn't just plop stuff in a .wod and have to work at runtime. You'd also need gobs of useless classes that did nothing but invoke accessor methods. Plus the classes would have to have foreknwoledge of each other at design time to communicate. With KVC, they don't - which is a pretty big deal if you want to reuse code frictionlessly. d ---------- >From: Michael Gersten >To: mmalcolm crawford >Cc: webobjects@omnigroup.com >Subject: Re: EOKeyBinding warning - regarding capitalized key >Date: Mon, Jul 3, 2000, 11:20 AM > >> > Ok, what is gained by using this convention? >> > >> EOKeyValueCoding works as advertised, as do a number of other bindings (e.g. >> in WOBuilder). > > And why doesn't EOKeyValueCoding work with upper case letters? Do upper > case letters mean something else (not obviously documented?) > > This argument sounds like "EOKeyValueCoding will work better if you > follow the convention because it won't work at all if you don't.". > >> > Keep in mind that previously, every table I've built has used IDFoo for >> > the keys for table Foo. This has the advantage that all of the keys >> > (primary, foreign, etc) get placed together. They normally are not class >> > properties, but every once in a while, ... >> > >> I'm not sure why what you call the table is relevant? >> >> mmalc. > > It's not the table name. IDCustomer begins with an upper case I. > EOModeler gives a consistency warning on it even though it isn't a class > property. > > And, on rare occasions, that IDblah does need to be a class property (a > three-way join table, for a M/M relationship involving three tables). > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From carlos.gonzalez at bancoval.es Tue Jul 4 00:56:21 2000 From: carlos.gonzalez at bancoval.es (Carlos Gonzalez Sanchez) Date: Mon Jul 3 23:56:21 2000 Subject: WO compiling on HP-UX References: Message-ID: <39618A3F.391B7254@bancoval.es> Next thing you have to do is delete the file /disk5/tempECDemo/ogcommerce-java/ogcommerce.build/objects-optimized/NSFramework_ogcommerce.o which is giving you problems because it was compiled in the development platform. Don´t be afraid of removing it because it will be generated again (this time for HP-UX) after you do a "make". "Brian P. Marquis" wrote: > I've made some progress! Added /usr/lib at the end of LPATH and I can now > get the WO Examples to compile. > > I'm now getting: > > ld: > /disk5/tempECDemo/ogcommerce-java/ogcommerce.build/objects-optimized/NSFrame > work_ogcommerce.o: Not a valid object file (invalid system id) > > when I try to compile my framework. > > > -----Original Message----- > > From: Pezzi, Robbyn J CA [SMTP:Robbyn.Pezzi@js.ca.ngb.army.mil] > > Sent: Monday, July 03, 2000 12:05 PM > > To: 'Brian P. Marquis' > > Subject: RE: WO compiling on HP-UX > > > > Brian, > > > > Unfortunately, the two systems I had been using are TU at the moment. > > However, below is something that may help you. It is from the "HP-UX > > Post-Installation Steps" in the apple documentation (info-center). I know > > I appended the LPATH to include all of the ones they show below in the > > documentation. > > > > Also think you should be able to do a : > > find / -name libpdo* > > And it will tell you the file is located at. Then you would also know > > what directory needs to be in the path. > > > > Tell me if things still are not going well. > > > > robbyn > > > > --------------- > > Setting the LPATH and SHLIB_PATH Environment Variables > > Set the LPATH environment variable to an appropriate value for your > > installation, with the following prepended to it (enter the following all > > on one line): > > > > $NEXT_ROOT/Local/Developer/Libraries:$NEXT_ROOT/Developer/Libraries:$NEXT_ > > ROOT/Local/Library/Executables:$NEXT_ROOT/Library/Executables:$NEXT_ROOT/ > > Library/JDK/lib > > > > Also set the SHLIB_PATH to the value of LPATH with: > > > > setenv SHLIB_PATH "$LPATH" > > -------------- > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From mmalc at stepwise.com Tue Jul 4 01:38:17 2000 From: mmalc at stepwise.com (mmalcolm crawford) Date: Tue Jul 4 00:38:17 2000 Subject: EOKeyBinding warning - regarding capitalized key In-Reply-To: <3960BD5C.F90E31F3@getasia.com> Message-ID: Michael Gersten wrote: > And why doesn't EOKeyValueCoding work with upper case letters? Do upper > case letters mean something else (not obviously documented?) > No, it's so that WO/EOF can consistently do the right thing with instance variables and accessor methods: Object anObject; public Object anObject; public Object getAnObject; public void setAnObject(Object newAnObject); > This argument sounds like "EOKeyValueCoding will work better if you > follow the convention because it won't work at all if you don't.". > Sounds like a good argument to me, cf the later posting from the 4.5 release notes. > It's not the table name. > I meant "column". mmalc. From carlos.gonzalez at bancoval.es Tue Jul 4 01:48:25 2000 From: carlos.gonzalez at bancoval.es (Carlos Gonzalez Sanchez) Date: Tue Jul 4 00:48:25 2000 Subject: Deployment system problem (shell script) References: <008d01bfe555$1a970930$01010101@mirrim> Message-ID: <39619643.693ED451@bancoval.es> Would it be possible to have a copy of your script? Thanks Richard Lewis-Shell wrote: > Thanks Michael > > That 'polling' solution would work for us. FYI, '-w' does not work with HP-UX's > ps - here is a snippet from the 10.20 ps man page: > "Only a subset of the command line is saved by the kernel; as much of the > command line will be displayed as is available." > > In case anyone is interested in our current, and hopefully final, solution, we > decided to modify the 'stop' script to kill the child processes that might be > orphaned after the 'loop' script is killed. Not quite as encapsulated as it > could be, but the 'loop' script remains very simple (no background processes, no > signal trapping), and only a couple more lines were needed in the 'stop' script. > > Phew - thanks all for your help, > > Richard > > > -----Original Message----- > > From: Michael Gersten [mailto:michael@getasia.com] > > Sent: Tuesday, 4 July 2000 11:09 > > To: Richard Lewis-Shell > > Cc: michael@stb.nccom.com; froy@singleentry.com; > > webobjects@omnigroup.com > > Subject: Re: Deployment system problem (shell script) > > > > > > > As for background launching/trapping signals, I tried this, without > > much luck. > > > The point of the script is to firstly start the app and then > > restart it when/if > > > it finishes. Thus the launch command sits within a while (true) loop. If I > > > start it in the background, this will spawn processes like there's > > no tomorrow, > > > and bad things will happen. I tried grabbing the pid of the app once it was > > > started in the background, then returning it to the foreground > > (fg), and tried > > > to use a signal trap to stop the now known child pid, but the > > signal routine is > > > not executed until the foreground process completes! > > > > Ok, then try something like this: > > > > while : > > do > > while [ kill -0 $CHILD ] > > do > > sleep $DELAY > > done > > > > # code to restart the now dead app > > done > > > > Adjust $DELAY as needed -- '2' should work fine. > > > > > I'm going round in circles. Perhaps the only option is to use pid > > files, or to > > > search for processes started by the script (ie. ppid = script pid), and kill > > > them after the script has been killed. This seems a little more > > fragile than > > > necessary - I just thought there might be some cunning way of > > telling a shell > > > script to kill its children when it dies... > > > > You can, actually. 'kill 0' will kill everything in the process group. > > > > Before job control (read: sh, not csh, not bash), every backgrounded > > process was in the shell's process group. > > > > Job control shells start each backgrounded child in a new process group. > > > > > Richard > > > > > > > -----Original Message----- > > > > From: Michael Gersten [mailto:michael@getasia.com] > > > > Sent: Tuesday, 4 July 2000 10:14 > > > > To: froy@singleentry.com > > > > Cc: Richard Lewis-Shell; webobjects@omnigroup.com > > > > Subject: Re: Deployment system problem (shell script) > > > > > > > > > > > > You want to use 'trap' in the shell script to catch the kill signal. You > > > > can then kill the WOApp explicitly. > > > > > > > > Most likely, you'll want to start the WOApp in the background, save it > > > > in a variable, and then use that in your kill statement. > > > > > > > > Fabien Roy wrote: > > > > > > > > > > Some suggestions: > > > > > > > > > > Try to get a bsd "ps" for HPUX from the gnu. BTW Solaris has kept > > > > > the bsd ps in "/usr/ucb" and I really understand why :-). > > > > > > > > > > In the ObjC launcher you could write (using NSProcessInfo and > > > > > getpid()) to a file the process id and the interesting arguments of > > > > > the process. I would suggest to use the process id concatenated with > > > > > the name of the process as the file name. Then you will have to > > > > > remove that file when you kill the process. > > > > > > > > > > Hope that helps. > > > > > > > > > > Fabien > > > > > > > > > > -- > > > > > |\ _,,,---,,_ Fabien Roy > > > > > /,`.-'`' -. ;-;;,_ Singleentry.com > > > > > |,4- ) )-,_. ,\ ( `'-' 107 RR 620 South, suite 117 > > > > > '---''(_/--' `-'\_) Lakeway, TX 78734 > > > > > Tel: (512) 266-6379 ext 1350 > > > > > Fax: (512) 266-6375 > > > > > Mob: (512) 796-9854 > > > > > http://www.singleentry.com > > > > > > > > > > _______________________________________________ > > > > > WebObjects mailing list > > > > > WebObjects@omnigroup.com > > > > > http://www.omnigroup.com/mailman/listinfo/webobjects > > > > > > > > > > _______________________________________________ > > > WebObjects mailing list > > > WebObjects@omnigroup.com > > > http://www.omnigroup.com/mailman/listinfo/webobjects > > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From carlos.gonzalez at bancoval.es Tue Jul 4 01:53:28 2000 From: carlos.gonzalez at bancoval.es (Carlos Gonzalez Sanchez) Date: Tue Jul 4 00:53:28 2000 Subject: Cannot connect to Sybase References: <200007032252.RAA11149@mail1.ixlhosting.net> Message-ID: <3961979D.692902CA@bancoval.es> --------------1124A609A98BDE78F8D0E052 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit > Do you have the SYBASE environment variable defined as well? > I'm not sure whether SYBASE or SYBASE_HOME is needed. > > Also, of course your database, user, and password must be > correct in the connection dictionary. > I have the SYBASE environment variable defined. My connection dictionary resides in a file inside my model: p002.woa/Resources/p002.eomodeld/index.eomodeld Should it be somewhere else? --------------1124A609A98BDE78F8D0E052 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit
       Do you have the SYBASE environment variable defined as well?
   I'm not sure whether SYBASE or SYBASE_HOME is needed.

          Also, of course your database, user, and password must be
  correct in the connection dictionary.


I have the SYBASE environment variable defined.
My connection dictionary resides in a file inside my model:

p002.woa/Resources/p002.eomodeld/index.eomodeld

Should it be somewhere else? --------------1124A609A98BDE78F8D0E052-- From martin.lonnar at redmessage.com Tue Jul 4 02:32:18 2000 From: martin.lonnar at redmessage.com (=?windows-1252?Q?Martin_L=F6nnar?=) Date: Tue Jul 4 01:32:18 2000 Subject: Upgrade WO license remote Message-ID: <995DCDD3A4EED311AC8600E018C2B83B02759E@RMXSRV> Hi, How do I upgrade/change my WebObjects license key remotely via telnet? Is there a file to edit? Mvh/Regards Martin Lönnar Red Message - Europe's leading m-commerce provider __________________________________________________ Martin Lönnar Application developer Red Message AB Stena Center 1C 412 92 Gothenburg Mobile: +46 (0)706 76 25 51 Fax: +46 (0)31 772 80 91 e-mail: martin.lonnar@redmessage.com http://www.redmessage.com/ Visiting address: Holtermansgatan 1, Gothenburg __________________________________________________ From burghams at penzance.com.au Tue Jul 4 03:26:22 2000 From: burghams at penzance.com.au (Simon Burgham) Date: Tue Jul 4 02:26:22 2000 Subject: Instance ID's of -1 from wotaskd Message-ID: <8A9DF5D1E033D41195F40050DA5B5450049521@DOMAIN_SERVER> I've been trying without much success to deploy my application with 2 instances, on NT IIS WO4.5. I have the adaptor fixes (thank you Pierce T.Wetter III!) and WO4.5 patch 1. The problem seems to be that wotaskd is returning the XMLConfigDoc with instance ID's of -1. I create 2 instances using Monitor, everything seems to be ok, it says I've created instance-6 and instance-7 when I look at the config screen. I can start both instances from Monitor, but Monitor doesn't know anything about them once they've started. The results from http://asap1:1085 are as follows : XMLConfigDoc component: Also, when I start 2 instances, the port no switches between each instance, going from 2002 to 2003 fairly randomly when I keep refreshing. I hope I am just doing something really stupid, because I can't believe that a vanilla deployment could be this hard ! If anyone could help it would great ! Thanks Simon Burgham The results from XYZZY are as follows : Server Adaptor: Server = CGI WebObjects Server Adaptor version = 4.5 WebObjects Configuration URI(s) = localhost:1085/WebObjects/wotaskd.woa/wa/woconfig:1085 since(Tue, 04 Jul 2000 10:14:38 GMT) next(10), Load balancing algorithms = (random, roundrobin, loadaverage) Transports = (winsock, socket, nbsocket) Available applications: ---------------------------------------------------------------------------- ---- LB redir cpSize cto/sto/rto S/R Size dead Interval Retries URL Version MyApp random (null) 32 120/120/120 65535/65535 30 0 4 inst host port transport Send Size Recv Size URL Version Load -1 asap1 2002 nbsocket 65535 65535 4 0 inst host port transport new sessions? removed? dead? active reqs served poolsz poolct/ max/ reused cto/ sto/ rto -1 asap1 2002 nbsocket 0 0 0 0 0 32 0/0/0 120/120/120 ---------------------------------------------------------------------------- ---- LB redir cpSize cto/sto/rto S/R Size dead Interval Retries URL Version Monitor random (null) 32 120/120/120 65535/65535 30 0 4 inst host port transport Send Size Recv Size URL Version Load -1 asap1 1031 nbsocket 65535 65535 4 0 inst host port transport new sessions? removed? dead? active reqs served poolsz poolct/ max/ reused cto/ sto/ rto -1 asap1 1031 nbsocket 0 0 0 0 0 32 0/0/0 120/120/120 Request headers: CLASSPATH: d:\apple\Library\Java\xml4j.jar;d:\apple\Library\JDK\lib\swingall.jar COMPUTERNAME: ASAP1 ComSpec: C:\WINNT\system32\cmd.exe content-length: 0 x-webobjects-gateway-interface: CGI/1.1 accept: */* accept-language: en-au HTTP_CONNECTION: Keep-Alive HTTP_HOST: asap1 user-agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT) HTTPS: off INCLUDE: C:\Program Files\Mts\Include INSTANCE_ID: 3 LIB: C:\Program Files\Mts\Lib LOCAL_ADDR: 192.168.1.129 NEXT_ROOT: d:/apple NTReskit: D:\NTReskit NUMBER_OF_PROCESSORS: 1 Os2LibPath: C:\WINNT\system32\os2\dll; OS: Windows_NT Path: d:\apple\Developer\Executables\Utilities;d:\apple\Local\Library\Executables; d:\apple\Library\JDK\bin;d:\apple\Library\Executables;C:\WINNT\system32;C:\W INNT;C:\Program Files\Mts;D:\NTReskit PATH_INFO: /xyzzy PATH_TRANSLATED: D:\Inetpub\wwwroot\xyzzy PATHEXT: .COM;.EXE;.BAT;.CMD;.VBS;.JS PROCESSOR_ARCHITECTURE: x86 PROCESSOR_IDENTIFIER: x86 Family 6 Model 8 Stepping 1, GenuineIntel PROCESSOR_LEVEL: 6 PROCESSOR_REVISION: 0801 x-webobjects-remote-addr: 192.168.1.161 x-webobjects-remote-host: 192.168.1.161 x-webobjects-request-method: GET SCRIPT_NAME: /cgi-bin/WebObjects.exe x-webobjects-server-name: asap1 x-webobjects-server-port: 80 SERVER_PORT_SECURE: 0 SERVER_PROTOCOL: HTTP/1.0 x-webobjects-server-software: Microsoft-IIS/4.0 SystemDrive: C: SystemRoot: C:\WINNT USERPROFILE: C:\WINNT\Profiles\Default User windir: C:\WINNT WO_CONFIG_URL: http://localhost:1085 10 From sebastien.b at cyberion.fr Tue Jul 4 03:57:05 2000 From: sebastien.b at cyberion.fr (Sebastien B.) Date: Tue Jul 4 02:57:05 2000 Subject: Urgent ! Application phantom ... Message-ID: <006a01bfe59e$55bbaea0$3414a8c0@sebastien.195.101.113.135> Hello everybody, I use WebObjects 4.5 (Patch 1) on Win NT 4 Pack 3. Description of my problem : I set in Monitor 1 instance of my program. Only 1 instance. I start it. In see my program at ON after 6 secondes in the Monitor. My program work fine. But In a random way, the monitor start a new instance of my program. So, after 2 days I have 10 instances in the task manager and I don't know why ! Is somebody have a answer ? Seb. French programmer. From james at traffic.co.uk Tue Jul 4 05:15:17 2000 From: james at traffic.co.uk (James Wilkins) Date: Tue Jul 4 04:15:17 2000 Subject: Upgrade WO license remote References: <995DCDD3A4EED311AC8600E018C2B83B02759E@RMXSRV> Message-ID: <004001bfe5a9$06c15330$0200a8c0@JAMESLAP> Search under the Apple tree for a file called license.key , yup its just a plain text file containing the license information. (I think its something like Apple\Local\Library\Frameworks\WebObjects\Resources\License.key) James ----- Original Message ----- From: "Martin Lönnar" To: "'webobjects list (OmniGroup)'" Sent: Tuesday, July 04, 2000 9:35 AM Subject: Upgrade WO license remote > Hi, > > How do I upgrade/change my WebObjects license key remotely via telnet? Is > there a file to edit? > > Mvh/Regards > Martin Lönnar > > Red Message - Europe's leading m-commerce provider > __________________________________________________ > Martin Lönnar > Application developer > Red Message AB > Stena Center 1C > 412 92 Gothenburg > > Mobile: +46 (0)706 76 25 51 > Fax: +46 (0)31 772 80 91 > e-mail: martin.lonnar@redmessage.com > > http://www.redmessage.com/ > > Visiting address: > Holtermansgatan 1, Gothenburg > __________________________________________________ > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From martin.lonnar at redmessage.com Tue Jul 4 06:00:57 2000 From: martin.lonnar at redmessage.com (=?windows-1252?Q?Martin_L=F6nnar?=) Date: Tue Jul 4 05:00:57 2000 Subject: SOLVED: Upgrade WO license remote Message-ID: <995DCDD3A4EED311AC8600E018C2B83B0275A5@RMXSRV> Hi, Thank you everyone who answered my (obviously) simple question. Solution: Enter the new license key in the following file... ...on NT: \Apple\Library\Frameworks\WebObjects.framework\Resources\License.key using Notepad or whatever. ...on MacOS X: /System/Library/Frameworks/WebObjects.framework/Resources/License.key using vi or whatever or... % cd /System/Library/Frameworks/WebObjects.framework/Resources % cp License.key License.key.COPY % echo "theKey" > License.key No need to restart. > Mvh/Regards > Martin Lönnar > > Red Message - Europe's leading m-commerce provider > __________________________________________________ > Martin Lönnar > Application developer > Red Message AB > Stena Center 1C > 412 92 Gothenburg > > Mobile: +46 (0)706 76 25 51 > Fax: +46 (0)31 772 80 91 > e-mail: martin.lonnar@redmessage.com > > http://www.redmessage.com/ > > Visiting address: > Holtermansgatan 1, Gothenburg > __________________________________________________ > From paulrs at lgs-systems.com Tue Jul 4 06:39:21 2000 From: paulrs at lgs-systems.com (Paul R. Summermatter) Date: Tue Jul 4 05:39:21 2000 Subject: Date -> NSGregorianDate Message-ID: <51325BD9D61DD31186A50040F6340DB8068289@smtp> Brian, A com.apple.client.foundation.NSGregorianDate or a com.apple.yellow.foundation.NSGregorianDate? If the latter, you ought to be able to do something like: NSGregorianDate date = new NSGregorianDate(javaDate.getYear(), javaDate.getMonth(), javaDate.getDay(), javaDate.getMinute(), javaDate.getSecond(), new NSTimeZone(javaDate.getTimezoneOffset())); (NB. I have not tested this code and there may be differences in java.util.Date's returning values in seconds/milliseconds and NSGregorianDate expecting arguments in seconds/milliseconds) If it's the former, NSGregorianDate is just a wrapper around a java.util.Date, so conversion is trivial. Regards, Paul [ -----Original Message----- [ From: Brian Wotring [mailto:brian@fortnocs.com] [ Sent: Monday, July 03, 2000 10:59 PM [ To: webobjects@omnigroup.com [ Subject: Date -> NSGregorianDate [ [ [ [ I have a Java class that has no WO code at all in it and I [ need to convert [ it's date() member and convert it into an NSGregorianDate object. [ [ Suggesstions? [ [ [ [ | Brian Wotring ( brian@fortnocs.com ) [ | Fort Nocs, Inc. [ | PGP Key ID: 0x9674763D [ _______________________________________________ [ WebObjects mailing list [ WebObjects@omnigroup.com [ http://www.omnigroup.com/mailman/listinfo/webobjects [ From Alexander.Lamb at dim.hcuge.ch Tue Jul 4 07:42:58 2000 From: Alexander.Lamb at dim.hcuge.ch (Alexander Lamb) Date: Tue Jul 4 06:42:58 2000 Subject: Automatic reconnection to the database... some additional info! Message-ID: <00eb01bfe5bd$54c9bc70$a81ec381@CIHDM50> Hello list, We were having some problems with the automatic reconnection to an Oracle database after the database was either shut down or some problems disconnected the client. Well, we implemented the code Patrice suggested a few days ago. It is never called, although the application reconnects correctly after the database connection has been explicitly killed by our DBA (therefore our problem must be elsewhere but we shall still leave the code in if that situation should occur)... However, there is one situation where the database is not reconnecting automatically and generating an exception (even with Patrice's code), it is when we call a stored procedure immediately after the deconnection (the situation we actually had probably quite often since the crashing app not reconnecting is a log server doing inserts in the database through a stored procedure). Here is the exception we get: Jul 04 15:27:53 LogsNavigator001[560] >>> Begin Transaction Jul 04 15:27:53 LogsNavigator001[560] === Begin Internal Transaction Jul 04 15:27:53 LogsNavigator001[560] *** [ evaluateExpression: :timeStamp ); end;" withBindings:{timeStamp = 2000-07-03 15:27:53 +0200; }>] requiresParse:YES Jul 04 15:27:53 LogsNavigator001[560] === Rollback Internal Transaction Jul 04 15:27:53 LogsNavigator001[560] : NSInternalInconsistencyException exception occurred while handling request: NSInternalInconsistencyException: Exception occured while evaluating 'archiveLogs', on target:: rollbackTransaction -- OracleContext 0x27417b8: Unable to rollback transaction Stack Trace: Not available. Any idea how to also trap this one? Thanks a lot, Alexander ________________________________ Alexander Lamb Groupe Serveurs Applicatifs Division d'Informatique Médicale Hôpitaux Universitaires de Genève alamb@dim.hcuge.ch +41-22-372-48-46 From mark at synergycentres.org Tue Jul 4 07:48:02 2000 From: mark at synergycentres.org (Mark Gowdy) Date: Tue Jul 4 06:48:02 2000 Subject: WO4.0.1 -> 4.5 Deployment Message-ID: <3961EB0E.D579D53A@synergycentres.org> Mmmm.. I'm afraid this is a 'two birds with one stone' email First of all : I transfered an old wo4.0.1 app onto a new installation of 4.5 (OS-X 1.0.2 - Frontbase) -- (excellent database btw) I am now getting the error message "Attempted to begin a transaction within a transaction." when I try to saveChanges after inserting an object. Secondly : I could start the app by clicking on the myApp in the myApp.woa directory But when I try to use monitor, myApp only starts for a brief moment and then dies.. I can't seem to find where it sends it's output so I can see what is happening... The docs say that errors appear in the WebServers error log, but there is no sign of any entries there ! In 4.0.1 the monitor would display all it's output in a window or I would redirect the output to a log file, what does 4.5 monitor do with it ? Many thanks again.... Mark -- /=========================\ | Mark Gowdy | Software Manager | Synergy Centres Ltd | Tel: 028 90 288844 | Mobile : 07808 400941 | ICQ : 31587517 \=========================/ From mgoodwin at mjgc.net Tue Jul 4 07:50:36 2000 From: mgoodwin at mjgc.net (Michael Goodwin) Date: Tue Jul 4 06:50:36 2000 Subject: Instantiating WOComponent with "new" vs. "pageWithName" Message-ID: <200007041350.GAA07772@scyther.omnigroup.com> Earlier in the year there was some discussion of the fact that instantiating a WOComponent using "new" did not generate the same results as using "pageWithName". I didn't see any fixes in the list archive. I've been bumping up against this in a couple of cases because I'm trying to do some parameterized initialization and need to use "new". Comparing 2 objects that are supposed to be the same shows that using "new", baseURL, name and path show the component where the instantiation was done instead of the actual component, and there is no session. Does anyone know why this happens, and is there a clean way to "fix" it? One thing that's very strange, is that in a test where I created a temp page with "pageWithName" and then created the real page with "new" (to compare them), the two were identical! It didn't work if the real page was instantiated first, though. That may be an effective workaround, although there may be some side effects.... Any thoughts or other findings would be greatly appreciated. Happy 4th of July! Michael From nils at sisyfos.com Tue Jul 4 08:02:02 2000 From: nils at sisyfos.com (Nils =?iso-8859-1?Q?=C4ngquist?=) Date: Tue Jul 4 07:02:02 2000 Subject: Initialising PageWithName Objects Message-ID: If I create an object with for example: SearchResult myNewPage = (SearchResult)pageWithName("SearchResult"); How can I put initialisation code for that object i a similar way as one normally can when using a constructor? TIA, - Nils -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nils Ängquist Sisyfos Produktion Gibraltargatan 80 - 1114 http://www.sisyfos.com/ SE-412 79 Göteborg nils@sisyfos.com +46 - 31 - 778 18 08 +46 - 70 - 318 48 08 (cellphone) From Dave at Yost.com Tue Jul 4 08:39:15 2000 From: Dave at Yost.com (Dave Yost) Date: Tue Jul 4 07:39:15 2000 Subject: Instantiating WOComponent with "new" vs. "pageWithName" In-Reply-To: <200007041350.GAA07772@scyther.omnigroup.com> References: <200007041350.GAA07772@scyther.omnigroup.com> Message-ID: On a related note. One of my pages has a property that is a WOComponent, in which there is a property containing an xml string. In debug mode, I want to be able to click on a link to a page that shows the xml (IE5 on Windows shows this xml nicely). The straightforward thing to do is to bind the xml component to the link so the xml component is switched to when you click on the link. Unfortunately I can't find a binding that will do this, as I can find no documentation on WOHyperlink. Not here http://developer.apple.com/techpubs/webobjects/System/Library/Frameworks/WebObjects.framework/Java/WebObjectsTOC.html Not in the little doc book icon in the WOBuilder inspector. I supposed I have to find that xml component object by name then set it to essentially be a copy of the existing one? This is gross. Open source for the runtime! Or failing that, 100% perfect documentation. Dave From ghopson at solant.com Tue Jul 4 09:22:08 2000 From: ghopson at solant.com (Geoff Hopson) Date: Tue Jul 4 08:22:08 2000 Subject: wml through monitor? References: <39613E24.746E8CC9@medicalhost.com> Message-ID: <3962022A.3AD3B533@solant.com> Whilst not having written a Monitor equivalent, we have put a WML/WAP interface on our online billing application. We used the free frameworks from Netmatic (www.netmatic.com). Worked really well, both on cellphones and on the Palm VII. No help on your Monitor question at all - sorry. You might want to run 'strings' on Monitor & wotaskd to see if that gives you any clues (eg direct actions to call). I wish Apple would release (or open source) the sourcecode for Monitor and wotaskd... Geoff "Robert A. Decker" wrote: > > Has anyone written a Monitor equivalent that supports Wireless Markup > Language for access through a device like a cell phone? > > thanks, > rob > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From burke at uhnres.utoronto.ca Tue Jul 4 09:35:24 2000 From: burke at uhnres.utoronto.ca (Michael Burke) Date: Tue Jul 4 08:35:24 2000 Subject: Initialising PageWithName Objects References: Message-ID: <39620742.B2875EC1@oci.utoronto.ca> Nils, You could write something like: SearchResult myNewPage = (SearchResult)pageWithName("SearchResult"); myNewPage.setVariableA(valueA); myNewPage.setArrayB(arrayB); myNewPage.setStatusVariableCEnabled(true); ... where you have designed API in SearchResult to handle initialization. Cheers, Michael Burke Nils Ängquist wrote: > If I create an object with for example: > > SearchResult myNewPage = (SearchResult)pageWithName("SearchResult"); > > How can I put initialisation code for that object i a similar way as > one normally can when using a constructor? > > TIA, > > - Nils > -- > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Nils Ängquist Sisyfos Produktion > Gibraltargatan 80 - 1114 http://www.sisyfos.com/ > SE-412 79 Göteborg > nils@sisyfos.com > +46 - 31 - 778 18 08 > +46 - 70 - 318 48 08 (cellphone) > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From pierce at twinforces.com Tue Jul 4 10:28:29 2000 From: pierce at twinforces.com (Pierce T. Wetter III) Date: Tue Jul 4 09:28:29 2000 Subject: WO4.0.1 -> 4.5 Deployment In-Reply-To: <3961EB0E.D579D53A@synergycentres.org> Message-ID: on 7/4/00 6:47 AM, Mark Gowdy at mark@synergycentres.org wrote: > Mmmm.. > I'm afraid this is a 'two birds with one stone' email > > First of all : > I transfered an old wo4.0.1 app onto a new installation of 4.5 > (OS-X 1.0.2 - Frontbase) -- (excellent database btw) > > I am now getting the error message > > "Attempted to begin a transaction within a transaction." > > when I try to saveChanges after inserting an object. Update your frontbase EOF adaptor. Pierce From MaxMuller at mac.com Tue Jul 4 10:53:03 2000 From: MaxMuller at mac.com (Max Muller) Date: Tue Jul 4 09:53:03 2000 Subject: OT: BlueBox on a PB 400 Message-ID: Hello, Sorry for the off topic post. Has anyone gotten the BlueBox to run on a Lombard 400 PowerBook? I have OSXS on it, but when I try to run the BlueBox it chimes and then hangs with a gray screen. Anyone else run into this? Possible work arounds? Thanks in advance. Regards, Max From yplessis at paloalto.fr Tue Jul 4 11:06:23 2000 From: yplessis at paloalto.fr (Yann Plessis) Date: Tue Jul 4 10:06:23 2000 Subject: Context error ... Message-ID: <014c01bfe5da$0b8db210$1300a8c0@yann> C'est un message de format MIME en plusieurs parties. ------=_NextPart_000_0149_01BFE5EA.CED4BE20 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable After refresh my navigator (by pressing my F5 key), if i make a saving = with this : session().defaultEditingContext().insertObject(newOffer); session().defaultEditingContext().saveChanges(); my app return this error :=20 Exception : NSInternalInconsistencyException: _globalIDForObject:: = EODatabaseContext 0x25866d8 unable to obtain global id for Category = object 0x25cf640 from EOEditingContext 0x25ea188 Do you know this problem ? ------=_NextPart_000_0149_01BFE5EA.CED4BE20 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

After refresh my navigator (by pressing = my F5 key),=20 if i make a saving with this :
 
session().defaultEditingContext().insertObject(newOffer);=
session().defaultEditingContext().saveChanges();
 
my app return this error : =
 
Exception : = NSInternalInconsistencyException:=20 _globalIDForObject:: EODatabaseContext 0x25866d8 unable to obtain global = id for=20 Category object 0x25cf640 from EOEditingContext = 0x25ea188
Do you know this problem=20 ?
------=_NextPart_000_0149_01BFE5EA.CED4BE20-- From Andrew.Hainault at capgemini.co.uk Tue Jul 4 11:52:00 2000 From: Andrew.Hainault at capgemini.co.uk (Hainault, Andrew J) Date: Tue Jul 4 10:52:00 2000 Subject: Curly quotes becoming underscores Message-ID: Hi, I'm having a strange problem with text containing curly single quotes or curly double quotes (Unicode characters 2018, 2019, 201C and 201D): the quotes are changed into underscores when displayed on a webpage, but neutral quotes (ie " or ' ) appear correctly. The text is stored in an Access database; if I browse the database in EO Modeler all the quotes appear normally. Equally if I write to the Launch window using System.out.println(theText), again everything's fine. Furthermore, a StringCharacterIterator that checks for the above-mentioned Unicode characters within the text does indeed find them.... In WebObjects builder the text is bound to a WOString. I tried binding to a WOTextField to see if that made any difference but got the same result. Text for an article is written in Word (PC or Mac) and then pasted into an HTML text field and written to the Access database using asp. I'm developing on WO 4.5, NT, IIS and using IE 5 for both Mac and PC. Any help would be much appreciated! Thanks, Andrew ------------------------------------------------- Andrew Hainault Cap Gemini UK Corporate Communications External: +44 (0)870 904 6446 Internal: 700 6446 Voicemail: 777 3242 ------------------------------------------------- From daniel.bleisteiner at metaobject.de Tue Jul 4 12:35:39 2000 From: daniel.bleisteiner at metaobject.de (Daniel Bleisteiner) Date: Tue Jul 4 11:35:39 2000 Subject: Two Apps - one Database -> Syncronization? Message-ID: Hi, i just have two different applications running the same database - a storefront and the backoffice of a shop. Is it possible to tell the storefront to refetch all changed objects from the database on session-start? At this point we need to restart the storefront everytime the backoffice changed objects. Daniel Bleisteiner, MetaObject GmbH - Oranienburger Strasse 69, 10117 Berlin Tel: +49-30-285381-10, Fax: +49-30-285381-99 From ghopson at solant.com Tue Jul 4 12:42:07 2000 From: ghopson at solant.com (Geoff Hopson) Date: Tue Jul 4 11:42:07 2000 Subject: Two Apps - one Database -> Syncronization? References: Message-ID: <39623116.89775AC7@solant.com> The following method on EOFetchSpecification works well for us in the same situation: - (void)setRefreshesRefetchedObjects:(BOOL)refreshesRefetchedObjects; Set it to YES, and the fetch spec will ignore the snapshot and fetch your objects directly from the database. Hope this helps, Geoff Daniel Bleisteiner wrote: > > Hi, > > i just have two different applications running the same database - a > storefront and the backoffice of a shop. Is it possible to tell the > storefront to refetch all changed objects from the database on > session-start? > > At this point we need to restart the storefront everytime the backoffice > changed objects. > > Daniel Bleisteiner, MetaObject GmbH > - > Oranienburger Strasse 69, 10117 Berlin > Tel: +49-30-285381-10, Fax: +49-30-285381-99 > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From paulrs at lgs-systems.com Tue Jul 4 13:39:12 2000 From: paulrs at lgs-systems.com (Paul R. Summermatter) Date: Tue Jul 4 12:39:12 2000 Subject: Two Apps - one Database -> Syncronization? Message-ID: <51325BD9D61DD31186A50040F6340DB806828D@smtp> Daniel et al, This is a major issue that needs addressing by Apple. Many of us who have dealt with large projects or projects which require up to the second data synchronization have endeavored to build various flavors of distributed notification servers to deal with this problem (I've done this twice now, once in objective-c and once in java). While I have tremendous respect for Eric Noyeau and I have yet to read his latest treatise on this subject, I respectfully diagree with him on the subject of distributed notification, and I truly believe that some form of distributed notification is the appropriate solution for this problem. That is, everytime an object is inserted/updated/deleted in one app instance, all other interested app instances are immediately notified of this modification in the object graph. Many web app server vendors offer this as a feature, and I think WOF would greatly benefit from some sort of real time synchronization implementation. Further, I think the synchornization mechanism should be opensourced so that we may all contribute to its feature set. Regards, Paul [ -----Original Message----- [ From: Daniel Bleisteiner [mailto:daniel.bleisteiner@metaobject.de] [ Sent: Tuesday, July 04, 2000 2:37 PM [ To: WebObjects [ Subject: Two Apps - one Database -> Syncronization? [ [ [ Hi, [ [ i just have two different applications running the same database - a [ storefront and the backoffice of a shop. Is it possible to tell the [ storefront to refetch all changed objects from the database on [ session-start? [ [ At this point we need to restart the storefront everytime the [ backoffice [ changed objects. [ [ Daniel Bleisteiner, MetaObject GmbH [ - [ Oranienburger Strasse 69, 10117 Berlin [ Tel: +49-30-285381-10, Fax: +49-30-285381-99 [ [ _______________________________________________ [ WebObjects mailing list [ WebObjects@omnigroup.com [ http://www.omnigroup.com/mailman/listinfo/webobjects [ From bigdog at bulldogbeach.com Tue Jul 4 14:04:52 2000 From: bigdog at bulldogbeach.com (Gary Teter) Date: Tue Jul 4 13:04:52 2000 Subject: Two Apps - one Database -> Syncronization? In-Reply-To: <51325BD9D61DD31186A50040F6340DB806828D@smtp> Message-ID: on 7/4/00 12:43 PM, Paul R. Summermatter at paulrs@lgs-systems.com wrote: > This is a major issue that needs addressing by Apple. Many of us > who have dealt with large projects or projects which require up to the > second data synchronization have endeavored to build various flavors of > distributed notification servers to deal with this problem (I've done this > twice now, once in objective-c and once in java). While I have tremendous > respect for Eric Noyeau and I have yet to read his latest treatise on this > subject, I respectfully diagree with him on the subject of distributed > notification, and I truly believe that some form of distributed notification > is the appropriate solution for this problem. That is, everytime an object > is inserted/updated/deleted in one app instance, all other interested app > instances are immediately notified of this modification in the object graph. > Many web app server vendors offer this as a feature, and I think WOF would > greatly benefit from some sort of real time synchronization implementation. > Further, I think the synchornization mechanism should be opensourced so that > we may all contribute to its feature set. Guess I'm feeling a little dense today (see signature :-), but doesn't David Neumann's ChangeNotification framework do the job? I've just added it recently to a current project, and it seems to work OK, and I've been able to monkey with the source to get it to behave the way I want. (In my case, using a list of EntitiesToSynch rather than a list of EntitiesNotToSynch.) My main feature request for it would be that it support automagic discovery of other application instances (probably by reading Monitor's config files) rather than direct configuration in a plist. Or is that what you're referring to? PS: The ChangeNotification framework lives at , but I found it through SoftTrak -- Gary Teter, Big Dog Bulldog Beach Interactive http://www.bulldogbeach.com There's always an excuse, and it usually involves coffee. From paulrs at lgs-systems.com Tue Jul 4 14:20:46 2000 From: paulrs at lgs-systems.com (Paul R. Summermatter) Date: Tue Jul 4 13:20:46 2000 Subject: Two Apps - one Database -> Syncronization? Message-ID: <51325BD9D61DD31186A50040F6340DB806828E@smtp> Gary, While I was very happy to see Dave be so generous as to offer his time to provide a possible solution to the problem, I suspect even he would admit his solution is not perfect. In particular, unless something has changed, the code used direct actions to distribute notifications. There is probably a significant amount of unecessary overhead associated with this type of communication mechanism. Further, what if you have a tool running that has nothing to do with WOF and cannot handle direct actions, but needs to be notified of changes. Also, I do not recall any error checking (ie, what happens if one of the other app instances does not get a notification because of a communication failure). For these and other reasons, I think Apple needs to put some more effort into addressing this issue. Regards, Paul [ -----Original Message----- [ From: Gary Teter [mailto:bigdog@bulldogbeach.com] [ Sent: Tuesday, July 04, 2000 4:04 PM [ To: 'webobjects@omnigroup.com' [ Cc: Paul R. Summermatter; Daniel Bleisteiner [ Subject: Re: Two Apps - one Database -> Syncronization? [ [ [ on 7/4/00 12:43 PM, Paul R. Summermatter at [ paulrs@lgs-systems.com wrote: [ [ > This is a major issue that needs addressing by Apple. Many of us [ > who have dealt with large projects or projects which [ require up to the [ > second data synchronization have endeavored to build [ various flavors of [ > distributed notification servers to deal with this problem [ (I've done this [ > twice now, once in objective-c and once in java). While I [ have tremendous [ > respect for Eric Noyeau and I have yet to read his latest [ treatise on this [ > subject, I respectfully diagree with him on the subject of [ distributed [ > notification, and I truly believe that some form of [ distributed notification [ > is the appropriate solution for this problem. That is, [ everytime an object [ > is inserted/updated/deleted in one app instance, all other [ interested app [ > instances are immediately notified of this modification in [ the object graph. [ > Many web app server vendors offer this as a feature, and I [ think WOF would [ > greatly benefit from some sort of real time synchronization [ implementation. [ > Further, I think the synchornization mechanism should be [ opensourced so that [ > we may all contribute to its feature set. [ [ [ Guess I'm feeling a little dense today (see signature :-), [ but doesn't David [ Neumann's ChangeNotification framework do the job? [ [ I've just added it recently to a current project, and it [ seems to work OK, [ and I've been able to monkey with the source to get it to [ behave the way I [ want. (In my case, using a list of EntitiesToSynch rather [ than a list of [ EntitiesNotToSynch.) [ [ My main feature request for it would be that it support [ automagic discovery [ of other application instances (probably by reading Monitor's [ config files) [ rather than direct configuration in a plist. Or is that what you're [ referring to? [ [ PS: The ChangeNotification framework lives at [ , [ but I found it through SoftTrak [ [ -- [ Gary Teter, Big Dog [ Bulldog Beach Interactive http://www.bulldogbeach.com [ There's always an excuse, and it usually involves coffee. [ [ _______________________________________________ [ WebObjects mailing list [ WebObjects@omnigroup.com [ http://www.omnigroup.com/mailman/listinfo/webobjects [ From bigdog at bulldogbeach.com Tue Jul 4 14:31:39 2000 From: bigdog at bulldogbeach.com (Gary Teter) Date: Tue Jul 4 13:31:39 2000 Subject: Two Apps - one Database -> Syncronization? In-Reply-To: <51325BD9D61DD31186A50040F6340DB806828E@smtp> Message-ID: on 7/4/00 1:25 PM, Paul R. Summermatter at paulrs@lgs-systems.com wrote: > While I was very happy to see Dave be so generous as to offer his > time to provide a possible solution to the problem, I suspect even he would > admit his solution is not perfect. In particular, unless something has > changed, the code used direct actions to distribute notifications. There is > probably a significant amount of unecessary overhead associated with this > type of communication mechanism. Further, what if you have a tool running > that has nothing to do with WOF and cannot handle direct actions, but needs > to be notified of changes. Also, I do not recall any error checking (ie, > what happens if one of the other app instances does not get a notification > because of a communication failure). For these and other reasons, I think > Apple needs to put some more effort into addressing this issue. Oh, I see. Yes, those are still issues with the current ChangeNotification framework. I suppose the error checking problem could be solved by having the notifier thread wait for a response that says "yeah, I got it." What would you suggest for how to notify a non-WOF tool? I imagine that whatever technique is used there might bypass the overhead of direct actions. My tendency is to use something like XML-RPC, which would carry perhaps a similar amount of baggage. I assume that you're talking at least about notifying EOF-based apps, and not arbitrary applications.... what do people do in those circumstances? -- Gary Teter, Big Dog Bulldog Beach Interactive http://www.bulldogbeach.com "Fun will now commence." -- Seven of Nine From richard at csarc.otago.ac.nz Tue Jul 4 15:59:07 2000 From: richard at csarc.otago.ac.nz (Richard Lewis-Shell) Date: Tue Jul 4 14:59:07 2000 Subject: Deployment system problem (shell script) In-Reply-To: <39619643.693ED451@bancoval.es> Message-ID: <000301bfe602$dc4e8640$01010101@mirrim> We are actually using 3 scripts - one to start all the necessary apps/instances, one to keep each instance running (the 'loop' script), and one to stop an app's instances. Here is the impt part of the 'stop' script (sorry, can't give them all out) - it looks for the 'loop' script, and its child processes and kills them. The 'loop' script can probably be similar to that posted previously. This works for us on HP-UX 10.20 with WO4. Note: this assumes the instances were each started with the command 'woloop MyAppName other args here', and to stop that app, you'd use 'wostop MyAppName'. 'stop' script (wostop): #!/bin/sh # find the pid of the woloop scripts running this app pid=`ps -ef | grep "woloop $1" | grep -v grep | awk '{ print $2 }'` # find the child pids for the woloop scripts (ie the apps themselves) cpid=`ps -ef | grep " $pid " | grep -v woloop | grep -v grep | awk '{ print $2 } '` pid="$pid $cpid" if [ x != x$pid ]; then kill $pid fi #eof Hope that helps, Richard PS. One final note - we haven't yet deployed these scripts, but they are working on our test server... > Would it be possible to have a copy of your script? > > Thanks > > Richard Lewis-Shell wrote: > > > Thanks Michael > > > > That 'polling' solution would work for us. FYI, '-w' does not work > with HP-UX's > > ps - here is a snippet from the 10.20 ps man page: > > "Only a subset of the command line is saved by the kernel; as much of the > > command line will be displayed as is available." > > > > In case anyone is interested in our current, and hopefully final, > solution, we > > decided to modify the 'stop' script to kill the child processes > that might be > > orphaned after the 'loop' script is killed. Not quite as encapsulated as it > > could be, but the 'loop' script remains very simple (no background > processes, no > > signal trapping), and only a couple more lines were needed in the > 'stop' script. > > > > Phew - thanks all for your help, > > > > Richard > > > > > -----Original Message----- > > > From: Michael Gersten [mailto:michael@getasia.com] > > > Sent: Tuesday, 4 July 2000 11:09 > > > To: Richard Lewis-Shell > > > Cc: michael@stb.nccom.com; froy@singleentry.com; > > > webobjects@omnigroup.com > > > Subject: Re: Deployment system problem (shell script) > > > > > > > > > > As for background launching/trapping signals, I tried this, without > > > much luck. > > > > The point of the script is to firstly start the app and then > > > restart it when/if > > > > it finishes. Thus the launch command sits within a while > (true) loop. If I > > > > start it in the background, this will spawn processes like there's > > > no tomorrow, > > > > and bad things will happen. I tried grabbing the pid of the > app once it was > > > > started in the background, then returning it to the foreground > > > (fg), and tried > > > > to use a signal trap to stop the now known child pid, but the > > > signal routine is > > > > not executed until the foreground process completes! > > > > > > Ok, then try something like this: > > > > > > while : > > > do > > > while [ kill -0 $CHILD ] > > > do > > > sleep $DELAY > > > done > > > > > > # code to restart the now dead app > > > done > > > > > > Adjust $DELAY as needed -- '2' should work fine. > > > > > > > I'm going round in circles. Perhaps the only option is to use pid > > > files, or to > > > > search for processes started by the script (ie. ppid = script > pid), and kill > > > > them after the script has been killed. This seems a little more > > > fragile than > > > > necessary - I just thought there might be some cunning way of > > > telling a shell > > > > script to kill its children when it dies... > > > > > > You can, actually. 'kill 0' will kill everything in the process group. > > > > > > Before job control (read: sh, not csh, not bash), every backgrounded > > > process was in the shell's process group. > > > > > > Job control shells start each backgrounded child in a new process group. > > > > > > > Richard > > > > > > > > > -----Original Message----- > > > > > From: Michael Gersten [mailto:michael@getasia.com] > > > > > Sent: Tuesday, 4 July 2000 10:14 > > > > > To: froy@singleentry.com > > > > > Cc: Richard Lewis-Shell; webobjects@omnigroup.com > > > > > Subject: Re: Deployment system problem (shell script) > > > > > > > > > > > > > > > You want to use 'trap' in the shell script to catch the kill > signal. You > > > > > can then kill the WOApp explicitly. > > > > > > > > > > Most likely, you'll want to start the WOApp in the background, save it > > > > > in a variable, and then use that in your kill statement. > > > > > > > > > > Fabien Roy wrote: > > > > > > > > > > > > Some suggestions: > > > > > > > > > > > > Try to get a bsd "ps" for HPUX from the gnu. BTW Solaris has kept > > > > > > the bsd ps in "/usr/ucb" and I really understand why :-). > > > > > > > > > > > > In the ObjC launcher you could write (using NSProcessInfo and > > > > > > getpid()) to a file the process id and the interesting arguments of > > > > > > the process. I would suggest to use the process id concatenated with > > > > > > the name of the process as the file name. Then you will have to > > > > > > remove that file when you kill the process. > > > > > > > > > > > > Hope that helps. > > > > > > > > > > > > Fabien > > > > > > > > > > > > -- > > > > > > |\ _,,,---,,_ Fabien Roy > > > > > > /,`.-'`' -. ;-;;,_ Singleentry.com > > > > > > |,4- ) )-,_. ,\ ( `'-' 107 RR 620 South, suite 117 > > > > > > '---''(_/--' `-'\_) Lakeway, TX 78734 > > > > > > Tel: (512) 266-6379 ext 1350 > > > > > > Fax: (512) 266-6375 > > > > > > Mob: (512) 796-9854 > > > > > > http://www.singleentry.com > > > > > > > > > > > > _______________________________________________ > > > > > > WebObjects mailing list > > > > > > WebObjects@omnigroup.com > > > > > > http://www.omnigroup.com/mailman/listinfo/webobjects > > > > > > > > > > > > > _______________________________________________ > > > > WebObjects mailing list > > > > WebObjects@omnigroup.com > > > > http://www.omnigroup.com/mailman/listinfo/webobjects > > > > > > > _______________________________________________ > > WebObjects mailing list > > WebObjects@omnigroup.com > > http://www.omnigroup.com/mailman/listinfo/webobjects > > From ehermanson at gofish.com Tue Jul 4 16:10:37 2000 From: ehermanson at gofish.com (Eric Hermanson) Date: Tue Jul 4 15:10:37 2000 Subject: Two Apps - one Database -> Syncronization? References: <51325BD9D61DD31186A50040F6340DB806828D@smtp> Message-ID: <00ae01bfe604$1da9ace0$1501aa0a@seafax.com> WebObjects already has a form of distributed notification -- it's called HTTP! Why not just send a direct action containing archived versions of the global ID's of changed object(s) to all apps registered in Monitor (e.g. MyApp.woa/1, MyApp.woa/2, etc). The direct action handlers for all of the registered apps can then invalidate the corresponding EO's in their private object stores. There are several useful classes in WO4.5 that you can use/subclass to get this to work: WODirectAction WORequestHandler WOMessage/WORequest/WOResponse WOHTTPConnection I guess you could also write a distributed EOObjectStore that acted as the parent object store for all apps, but that might be way too slow. - Eric ----- Original Message ----- From: "Paul R. Summermatter" To: "'Daniel Bleisteiner'" Cc: Sent: Tuesday, July 04, 2000 3:43 PM Subject: RE: Two Apps - one Database -> Syncronization? > Daniel et al, > > > > This is a major issue that needs addressing by Apple. Many of us > who have dealt with large projects or projects which require up to the > second data synchronization have endeavored to build various flavors of > distributed notification servers to deal with this problem (I've done this > twice now, once in objective-c and once in java). While I have tremendous > respect for Eric Noyeau and I have yet to read his latest treatise on this > subject, I respectfully diagree with him on the subject of distributed > notification, and I truly believe that some form of distributed notification > is the appropriate solution for this problem. That is, everytime an object > is inserted/updated/deleted in one app instance, all other interested app > instances are immediately notified of this modification in the object graph. > Many web app server vendors offer this as a feature, and I think WOF would > greatly benefit from some sort of real time synchronization implementation. > Further, I think the synchornization mechanism should be opensourced so that > we may all contribute to its feature set. > > > > Regards, > Paul > > [ -----Original Message----- > [ From: Daniel Bleisteiner [mailto:daniel.bleisteiner@metaobject.de] > [ Sent: Tuesday, July 04, 2000 2:37 PM > [ To: WebObjects > [ Subject: Two Apps - one Database -> Syncronization? > [ > [ > [ Hi, > [ > [ i just have two different applications running the same database - a > [ storefront and the backoffice of a shop. Is it possible to tell the > [ storefront to refetch all changed objects from the database on > [ session-start? > [ > [ At this point we need to restart the storefront everytime the > [ backoffice > [ changed objects. > [ > [ Daniel Bleisteiner, MetaObject GmbH > [ - > [ Oranienburger Strasse 69, 10117 Berlin > [ Tel: +49-30-285381-10, Fax: +49-30-285381-99 > [ > [ _______________________________________________ > [ WebObjects mailing list > [ WebObjects@omnigroup.com > [ http://www.omnigroup.com/mailman/listinfo/webobjects > [ > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From ehermanson at gofish.com Tue Jul 4 16:16:38 2000 From: ehermanson at gofish.com (Eric Hermanson) Date: Tue Jul 4 15:16:38 2000 Subject: Two Apps - one Database -> Syncronization? References: <51325BD9D61DD31186A50040F6340DB806828E@smtp> Message-ID: <00b801bfe604$f6d42860$1501aa0a@seafax.com> ----- Original Message ----- From: "Paul R. Summermatter" > Further, what if you have a tool running > that has nothing to do with WOF and cannot handle direct actions, but needs > to be notified of changes. Also, I do not recall any error checking (ie, > what happens if one of the other app instances does not get a notification > because of a communication failure). Keep in mind that error checking an asyncrhonous notification will always be impossible, whether you use direct actions or D.O. To achieve a fail-safe asynchronous notification system, you need to have a persistent event queue, and objects that process that queue full time. As for not wanting to use DirectActions, you could get fancy and subclass WOMessage and WORequestHandler (and maybe WOAdaptor) to come up with your own notification scheme. Apple should rip these classes (or related classes) out of WebObjects so non-wo apps can use them. - Eric From d.theisen at dv-org.de Tue Jul 4 16:42:54 2000 From: d.theisen at dv-org.de (Dirk Theisen) Date: Tue Jul 4 15:42:54 2000 Subject: wish list and bad things in WO In-Reply-To: <19990809172143.23986.qmail@nwcst091.netaddress.usa.net> Message-ID: <1ed9tnb.yzdpnx1cey5vkM%d.theisen@objectpark.de> Hello! > Here is my wish list for WebObjects: > - my own custom sub-component representation in WebObjectsBuilder. I want my > sub-component to look like a WORepetition, or a WOCondition In addition, we'd like to be able to provide custom views and custom inspectors(!) like the BODY inspector > - EOModeler format in xml > - XMLFileAdaptor > - change wod files to xml We at ObjectTeam very much second this. This would allow us to drive user friendlyness and look of our WAP framework to the max. Regards, Dirk From clread at mindspring.com Tue Jul 4 17:02:50 2000 From: clread at mindspring.com (Charles L. Read) Date: Tue Jul 4 16:02:50 2000 Subject: remove WODisplayGroups, but re-compilation fails Message-ID: <87r999zkge.fsf@mindspring.com> 0. I set up a component with several WODisplayGroups. 1. Later, I removed all WODisplayGroups, then re-compiled. 2. WO App now fails. Besides removing WODisplayGroup from the visual component, and ensuring references in the .wod file are removed, is there further work you have to do to purge WODisplayGroups that you have removed? Regards, -- Charles L. Read PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D 70 C1 DF 5F 65 From dhsu at semantix.com Tue Jul 4 17:12:26 2000 From: dhsu at semantix.com (donny Hsu) Date: Tue Jul 4 16:12:26 2000 Subject: remove WODisplayGroups, but re-compilation fails In-Reply-To: <87r999zkge.fsf@mindspring.com> Message-ID: <4.3.2.7.0.20000704191036.00af5cf0@pop.semantix.com> >0. I set up a component with several WODisplayGroups. > >1. Later, I removed all WODisplayGroups, then re-compiled. > >2. WO App now fails. > > >Besides removing WODisplayGroup from the visual component, >and ensuring references in the .wod file are removed, is >there further work you have to do to purge WODisplayGroups >that you have removed? Have you looked in the .woo file? From leon at drakeassociates.com Tue Jul 4 17:14:24 2000 From: leon at drakeassociates.com (Leon Amdour) Date: Tue Jul 4 16:14:24 2000 Subject: remove WODisplayGroups, but re-compilation fails In-Reply-To: <87r999zkge.fsf@mindspring.com> Message-ID: <4.3.2.7.1.20000704161308.00b0d530@drakeassociates.com> > >0. I set up a component with several WODisplayGroups. > >1. Later, I removed all WODisplayGroups, then re-compiled. > >2. WO App now fails. > > >Besides removing WODisplayGroup from the visual component, >and ensuring references in the .wod file are removed, is >there further work you have to do to purge WODisplayGroups >that you have removed? Well, references and bindings need to be removed... Where does it fail? Does it compile and build? Does it throw an exception during execution? Try catching it and calling printStackTrace. Leon From ccc at idirect.com Tue Jul 4 17:17:15 2000 From: ccc at idirect.com (Michael Clark) Date: Tue Jul 4 16:17:15 2000 Subject: Writing tools in Java. Message-ID: <4.1.20000704190223.01b47dc0@pop.idirect.com> Hello All. Has anyone managed to write a Tool using Java? When I created the project of Tool type and it does not give me the option of using Java. Here is what I tried thus far (My project is called DataConverter, and the java file is DataConverter.java): #import #import int main(int argc, char *argv[]) { Class converterClass; id converter; NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; converterClass = [[NSJavaVirtualMachine defaultVirtualMachine] findClass:@"DataConverter"]; [pool release]; exit(0); return 0; } I am not even sure if that is on the right track or not. All I want to do is write a Java application here! :) If anyone has any ideas that would be appreciated. Thanks. Michael. From clread at mindspring.com Tue Jul 4 17:57:25 2000 From: clread at mindspring.com (Charles L. Read) Date: Tue Jul 4 16:57:25 2000 Subject: SIGSEGV implicated with WODisplayGroup.setDelegate() Message-ID: <87em59zhxi.fsf@mindspring.com> See 2 files appended, Main.java, ProductDelegate.java. The relevant method in ProductDelegate is displayGroupShouldFetch(). Now, in Main(), there are 2 cases: 0. Success case. Comment out: myDisplayGroup.setDelegate(...); myDisplayGroup.fetch(); makeNewAccount() works fine, and you proceed to the next component. 1. Failure case. Uncomment the two lines shown above. Now when makeNewAccount() is called, the WO app dumps core. In fact, just the call to myDisplayGroup.setDelegate(...); is sufficient to lead to a core dump. What is going on here? Is there something wrong with my implementation of ProductDelegate()? Is there more special work I must do when I fetch manually (ie, I do not `Fetch on load' when I set up the WODisplayGroup). This is really holding my progress. So any help is greatly appreciated. Regards, Charlie // Generated by the WebObjects Wizard Fri Jun 30 09:38:34 US/Pacific 2000 import com.apple.yellow.foundation.*; import com.apple.yellow.webobjects.*; import com.apple.yellow.eocontrol.*; import com.apple.yellow.eoaccess.*; import java.util.*; public class Main extends WOComponent { protected WODisplayGroup myDisplayGroup; public Main() { super(); // Following 2 lines work fine. But when executed, // makeNewAccount() will dump core. myDisplayGroup.setDelegate(new ProductDelegate("Product", "category", EOQualifier.QualifierOperatorLike, new String("Hyper*"))); myDisplayGroup.fetch(); } public CustomerAccountInfo makeNewAccount() { Customer customer = new Customer(); session().defaultEditingContext().insertObject(customer); // Create and initialize your component here. CustomerAccountInfo nextPage = (CustomerAccountInfo)pageWithName("CustomerAccountInfo"); nextPage.setCustomer(customer); return nextPage; } } /* ProductDelegate.java created by root on Mon 26-Jun-2000 */ import com.apple.yellow.foundation.*; import com.apple.yellow.eoaccess.*; import com.apple.yellow.eocontrol.*; import com.apple.yellow.webobjects.*; public class ProductDelegate implements WODisplayGroup.Delegate { private String table; private String column; private NSSelector operator; private Object right_hand_side; public ProductDelegate(String table, String column, NSSelector operator, Object rhs) { this.table = table; this.column = column; this.operator = operator; this.right_hand_side = rhs; } /* * Interface for WODisplayGroup.Delegate. */ public void displayGroupCreateObjectFailedForDataSource(WODisplayGroup dg, Object ds) { // nothing. } public void displayGroupDidChangeDataSource(WODisplayGroup dg) { // nothing. } public void displayGroupDidChangeSelectedObjects(WODisplayGroup dg) { // nothing. } public void displayGroupDidChangeSelection(WODisplayGroup dg) { // nothing. } public void displayGroupDidDeleteObject(WODisplayGroup dg, Object o) { // nothing. } public void displayGroupDidFetchObjects(WODisplayGroup dg, NSArray ar) { } public void displayGroupDidInsertObject(WODisplayGroup dg, Object o) { // nothing. } public void displayGroupDidSetValue(WODisplayGroup dg, Object val, Object o, String key) { // nothing. } public NSArray displayGroupDisplayArrayForObjects(WODisplayGroup dg, NSArray ar) { // NOTE: the current selection is preserved. This matters. return ar; } public boolean displayGroupShouldChangeSelectionToIndexes(WODisplayGroup dg, NSArray ar) { return true; } public boolean displayGroupShouldDeleteObject(WODisplayGroup dg, Object o) { return true; } public boolean displayGroupShouldFetch(WODisplayGroup dg) { EODatabaseDataSource ds = (EODatabaseDataSource)dg.dataSource(); EOQualifier qual = new EOKeyValueQualifier(column, operator, right_hand_side); EOFetchSpecification fs = new EOFetchSpecification(table, qual, null); ds.setFetchSpecification(fs); return true; } public boolean displayGroupShouldInsertObject(WODisplayGroup dg, Object o, int index) { return true; } public boolean displayGroupShouldRedisplayForChangesInEditingContext( WODisplayGroup dg, NSNotification nsn) { return true; } public boolean displayGroupShouldRefetchForInvalidatedAllObjects( WODisplayGroup dg, NSNotification nsn) { return true; } } From ccc at idirect.com Tue Jul 4 18:03:53 2000 From: ccc at idirect.com (Michael Clark) Date: Tue Jul 4 17:03:53 2000 Subject: OOPPS! Forgot a line! Writing tools in Java. Message-ID: <4.1.20000704195750.01b549d0@pop.idirect.com> I forgot, I did instantiate the object: converter = [[converterClass alloc] init]; this was before the [pool release]; line. Thanks. Michael. >X-Sender: ccc@pop.idirect.com >X-Mailer: QUALCOMM Windows Eudora Pro Version 4.1 >Date: Tue, 04 Jul 2000 19:12:53 -0400 >To: webobjects@omnigroup.com >From: Michael Clark >Subject: Writing tools in Java. >Sender: webobjects-admin@omnigroup.com >X-BeenThere: webobjects@omnigroup.com >X-Mailman-Version: 2.0beta3 >List-Id: Discussions of Apple's WebObjects > >Hello All. > >Has anyone managed to write a Tool using Java? >When I created the project of Tool type and it does not give me the option >of using Java. > >Here is what I tried thus far (My project is called DataConverter, and the >java file is DataConverter.java): >#import >#import > >int main(int argc, char *argv[]) >{ > Class converterClass; > id converter; > > NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; > > converterClass = [[NSJavaVirtualMachine defaultVirtualMachine] >findClass:@"DataConverter"]; > > [pool release]; > exit(0); > return 0; >} > >I am not even sure if that is on the right track or not. All I want to do >is write a Java application here! :) > >If anyone has any ideas that would be appreciated. >Thanks. >Michael. > >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From garrison at standardorbit.com Tue Jul 4 18:14:43 2000 From: garrison at standardorbit.com (Bill Garrison) Date: Tue Jul 4 17:14:43 2000 Subject: PWO II Training in Toronto Message-ID: I'm looking for information and opinions on the Programming WebObjects II course, particularly being taught in Toronto. Does anyone know if Apple does the Toronto training or is it a local consulting firm? Thanks! Bill ---- Bill Garrison garrison@standardorbit.com From nafissi at apple.com Tue Jul 4 19:28:31 2000 From: nafissi at apple.com (Nader Nafissi) Date: Tue Jul 4 18:28:31 2000 Subject: Writing tools in Java. In-Reply-To: <4.1.20000704190223.01b47dc0@pop.idirect.com> Message-ID: Michael, Check out the following Tech Info article on how to create a Java Tool project: http://til.info.apple.com/techinfo.nsf/artnum/n70110 Nader On Tue, 4 Jul 2000, Michael Clark wrote: > Hello All. > > Has anyone managed to write a Tool using Java? > When I created the project of Tool type and it does not give me the option > of using Java. > > Here is what I tried thus far (My project is called DataConverter, and the > java file is DataConverter.java): > #import > #import > > int main(int argc, char *argv[]) > { > Class converterClass; > id converter; > > NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; > > converterClass = [[NSJavaVirtualMachine defaultVirtualMachine] > findClass:@"DataConverter"]; > > [pool release]; > exit(0); > return 0; > } > > I am not even sure if that is on the right track or not. All I want to do > is write a Java application here! :) > > If anyone has any ideas that would be appreciated. > Thanks. > Michael. > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > From leeden at euro.apple.com Wed Jul 5 01:32:35 2000 From: leeden at euro.apple.com (Christian van der Leeden) Date: Wed Jul 5 00:32:35 2000 Subject: WO4.0.1 -> 4.5 Deployment References: <3961EB0E.D579D53A@synergycentres.org> Message-ID: <005501bfe653$610d5140$05664511@hesse> Hi Mark, wotaskd is now having the output you are looking for. On OSX this is redirected to /var/log/webobjects.log. Do a tail -f to see what's going on when starting. CU Christian ----- Original Message ----- From: "Mark Gowdy" To: "Multiple recipients of list" Sent: Tuesday, July 04, 2000 3:47 PM Subject: WO4.0.1 -> 4.5 Deployment > Mmmm.. > I'm afraid this is a 'two birds with one stone' email > > First of all : > I transfered an old wo4.0.1 app onto a new installation of 4.5 > (OS-X 1.0.2 - Frontbase) -- (excellent database btw) > > I am now getting the error message > > "Attempted to begin a transaction within a transaction." > > when I try to saveChanges after inserting an object. > > Secondly : > I could start the app by clicking on the myApp in the myApp.woa > directory > But when I try to use monitor, myApp only starts for a brief moment and > then dies.. > I can't seem to find where it sends it's output so I can see what is > happening... > The docs say that errors appear in the WebServers error log, but there > is no sign of any entries there ! > > In 4.0.1 the monitor would display all it's output in a window or I > would redirect the output to a log file, > what does 4.5 monitor do with it ? > > > Many thanks again.... > > Mark > -- > > /=========================\ > | Mark Gowdy > | Software Manager > | Synergy Centres Ltd > | Tel: 028 90 288844 > | Mobile : 07808 400941 > | ICQ : 31587517 > \=========================/ > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > From bmarquis at ogse.com Wed Jul 5 07:37:10 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Wed Jul 5 06:37:10 2000 Subject: Accessing elements of Session.java Message-ID: It sounds like the Session variables are protected and don't have accessor methods. Either make the variables public or (this is preferred) create public accessor methods for the variables. > -----Original Message----- > From: Joshua 'Tool User' Marker [SMTP:axislux@pacbell.net] > Sent: Sunday, July 02, 2000 8:21 PM > To: david m. richter; rrutigliano@mail.kindercare.com > Cc: webobjects@omnigroup.com > Subject: Re: Accessing elements of Session.java > > We make an abstract superclass (MyWoComponent.java) and have all our > components descend from it. It includes: > > private Session mySession() { return (Session) session(); } > > The win here is that mySession shows up in WOB, allowing access to > session methods and variables from within that app. > > This is slightly less obnoxious than littering my code with > ((Session)session()).mySessionMethod(foo, bar); all the time. I still feel > dirty, but. . . you gotta love java! (Why do ya gotta? 'cause it's the > only > show in town!) > > You see, session() returns the WOSession, and you need to cast (a java > term - it makes your code feel not unlike a fractured, twisted limb; hence > 'cast') the returned object to Session 'cause java is a bit nervous about > trying out methods willy-nilly on objects it's not sure can take it. > > -j (who has been writing ObjC again lately -- did you guess?) > > on 12/24/99 10:29 AM, david m. richter at drichter@apple.com wrote: > > >> I have added some variables to Session.java with hopes that they would > >> be global to all screens in a project. The screen designer uses these > >> variables just fine. My problem is--how do you access these variables > >> from a different java file (for example Main.java). If I use (Session) > >> this.session(), it doesn't work. All of my custom variables come back > >> as null since this.session returns type WOSession, not Session. > >> > > > > Hi there, > > That's a good question; what you want to do is make sure that > > you can get at those custom variables, obviously. For this, make > > sure that your cast is working properly--check out how you used > > it. For instance, if you're in a given different .java file (say, > > MyCustomComponent.java) and you want access to some String > > in that's in the session (and has the appropriate accessor), you'd say: > > ... > > Session s = (Session)session(); > > String localString = s.sessionString(); > > ... > > You already seem to know that a given WOComponent will > > know how to give you back a reference to its current Session > > instance, and you can read a bit more about it in WOInfoCenter > > or the JavaBrower. `this' isn't needed. > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From bmarquis at ogse.com Wed Jul 5 07:38:45 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Wed Jul 5 06:38:45 2000 Subject: Accessing objects in session Message-ID: try: acctNumber = session.account().accountNumber(); > -----Original Message----- > From: Gary Teter [SMTP:bigdog@bulldogbeach.com] > Sent: Thursday, June 29, 2000 4:33 PM > To: Spencer Miles; WebObjects Mailing List > Subject: Re: Accessing objects in session > > on 6/29/00 2:01 PM, Spencer Miles at smiles@tpud.org wrote: > > > I have all my EOEnterpriseObjects defined in session.java. I'm not sure > if > > this is the best thing to do or not, but it works best for me, because > then > > all my seperate pages can access them. Anyways how do I reference one > of > > these. For example i've tried session.account.accountNumber(), where > account > > is a table in the database. But that doesn't work. > > protected String acctNumber; > > acctNumber = session.account.accountNumber(); > > > > I get the error 'Identifier Expected' > > Can anyone point me in the right direction on this? > > thanks > > In general, there's nothing wrong with keeping stuff in your session, > especially if it's going to be used by multiple pages. > > You're getting confused between the notation used in a wod file and that > used in Java code. > > In a wod file, you write the binding like so: > session.account.accountNumber > > But in Java code, some of those are method calls, like so: > session().account().accountNumber(); > > At a minimum, session() is a method call, but I'd make account() and > accountNumber() method calls too. Generally instead of making your > instance > variables available (so you could write session().account.accountNumber ), > you should wrap them in accessors, like so: > > public class Session extends WOSession { > > protected EOEnterpriseObject _account; > > /** @TypeInfo Account */ > public EOEnterpriseObject account() { > return _account; > } > > public void setAccount(EOEnterpriseObject value) { > _account = value; > } > } > > This won't affect the way you bind stuff in the wod file -- WebObjects is > smart enough to call your accessor if you say > session.account.accountNumber > in a wod file. > > Oh, one other thing, you're going to have to cast the call to session() to > return an instance of your custom Session subclass, otherwise the compiler > won't be able to find your methods (or publicly-available instance > variables). Like so: > > String accountNumber = ((Session)session()).account().accountNumber(); > > > -- > Gary Teter, Big Dog > Bulldog Beach Interactive http://www.bulldogbeach.com > There's always an excuse, and it usually involves coffee. > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From Dylan.Pugh at proact.net Wed Jul 5 08:17:07 2000 From: Dylan.Pugh at proact.net (Dylan) Date: Wed Jul 5 07:17:07 2000 Subject: Use of setAutoOpenInBrowser Message-ID: <00a201bfe68b$c3639830$477ae0c3@dpugh> This is a multi-part message in MIME format. ------=_NextPart_000_009F_01BFE694.12C0D980 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Can someone send me code on how to use setAutoOpenInBrowser in WebScript if possible, java will also be fine Thanks, =20 Dylan. ------=_NextPart_000_009F_01BFE694.12C0D980 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Can someone send me code on how to use=20 setAutoOpenInBrowser
in WebScript if possible, java will = also be=20 fine
 
Thanks,
 
 Dylan.
------=_NextPart_000_009F_01BFE694.12C0D980-- From ESchneider at tiaa-cref.org Wed Jul 5 08:28:22 2000 From: ESchneider at tiaa-cref.org (Schneider, Eric) Date: Wed Jul 5 07:28:22 2000 Subject: Bar charts, pie charts, etc. Message-ID: <7A69F7FAA422D31195DB0000F6AB4EBB029BADCF@msxnyusr02.wins.tiaa-cref.org> Howdy, I'm working on a project that will require dynamic charts.........for example a bar chart that shows the effect of inflation over 30 years......real exciting stuff. Has anyone come across any nifty tools that does this and works well with WO? Someone had mentioned JChart....had anyone used that? Suggestions would be greatly appreciated. Thanks, Eric. From Mariano.Barcia at teknoland.com Wed Jul 5 08:33:44 2000 From: Mariano.Barcia at teknoland.com (Mariano Barcia) Date: Wed Jul 5 07:33:44 2000 Subject: WO with B2C ? Message-ID: <002c01bfe68e$d7802fb0$4201010a@VIRTUAL> This is a multi-part message in MIME format. ------=_NextPart_000_0028_01BFE675.9FF09710 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0029_01BFE675.9FF09710" ------=_NextPart_001_0029_01BFE675.9FF09710 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable people: I want to know if WO offers components for building a retail store = online (catalog, products, orders, etc.). I=B4ve found such a package in = FlashLine.com (Enterprise Business Components from Diamelle = Technologies) but I could not download the demo yet because of a problem = with a Diamelle=B4s license (I have to wait until July 5th). Besides, I = don=B4t know if these components could be integrated within Apple = WebObjects. TIA Mariano Barcia ------=_NextPart_001_0029_01BFE675.9FF09710 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
people:
 
    I want to know if WO = offers components=20 for building a retail store online (catalog, products, orders, etc.). = I=B4ve found=20 such a package in FlashLine.com (Enterprise Business Components = from=20 Diamelle Technologies) but I could not download the demo yet = because of a=20 problem with a Diamelle=B4s license (I have to wait until July = 5th). Besides,=20 I don=B4t know if these components could be integrated within Apple = WebObjects.
 
TIA
 
Mariano Barcia

 
------=_NextPart_001_0029_01BFE675.9FF09710-- ------=_NextPart_000_0028_01BFE675.9FF09710 Content-Type: text/x-vcard; name="Mariano Eugenio Barcia.vcf" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="Mariano Eugenio Barcia.vcf" BEGIN:VCARD VERSION:2.1 N:Barcia;Mariano;Eugenio FN:Mariano Eugenio Barcia ORG:Teknoland rtt;IT TITLE:IT Consultant TEL;WORK;VOICE:43453300 int 208 TEL;CELL;VOICE:45502867 ADR;WORK:;;Av A M de Justo 872 2P 12;Buenos Aires;BA;1107;AR LABEL;WORK;ENCODING=3DQUOTED-PRINTABLE:Av A M de Justo 872 2P = 12=3D0D=3D0ABuenos Aires, BA 1107=3D0D=3D0AAR X-WAB-GENDER:2 BDAY:19730515 EMAIL;PREF;INTERNET:Mariano.Barcia@teknoland.com EMAIL;INTERNET:mbarcia@yahoo.com REV:20000705T143905Z END:VCARD ------=_NextPart_000_0028_01BFE675.9FF09710-- From Dylan.Pugh at proact.net Wed Jul 5 08:37:06 2000 From: Dylan.Pugh at proact.net (Dylan) Date: Wed Jul 5 07:37:06 2000 Subject: Use of setAutoOpenInBrowser - Sorry References: <00a201bfe68b$c3639830$477ae0c3@dpugh> Message-ID: <00ba01bfe68e$6f7d4b50$477ae0c3@dpugh> This is a multi-part message in MIME format. ------=_NextPart_000_00B2_01BFE696.BC0DFF20 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Sorry I have Managed to anwer my own Question .... [WOApplication setAutoOpenInBrowser:NO]; Doh! Dylan. ----- Original Message -----=20 From: Dylan=20 To: webobjects@omnigroup.com=20 Sent: Wednesday, July 05, 2000 3:17 PM Subject: Use of setAutoOpenInBrowser Can someone send me code on how to use setAutoOpenInBrowser in WebScript if possible, java will also be fine Thanks, =20 Dylan. ------=_NextPart_000_00B2_01BFE696.BC0DFF20 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Sorry I have Managed to anwer my own = Question=20 ....
 
[WOApplication=20 setAutoOpenInBrowser:NO];
 
 
Doh!
 
Dylan.
 
 
----- Original Message -----
From:=20 Dylan=20
To: webobjects@omnigroup.com
Sent: Wednesday, July 05, 2000 = 3:17=20 PM
Subject: Use of=20 setAutoOpenInBrowser

Can someone send me code on how to = use=20 setAutoOpenInBrowser
in WebScript if possible, java will = also be=20 fine
 
Thanks,
 
 Dylan.
------=_NextPart_000_00B2_01BFE696.BC0DFF20-- From michael at stb.nccom.com Wed Jul 5 08:43:25 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Wed Jul 5 07:43:25 2000 Subject: Initialising PageWithName Objects References: Message-ID: <3963494C.4BAE85EE@getasia.com> Try something like SearchResult myNewPage = (SearchResult)pageWithName("SearchResult"); myNewPage.init(arg1, arg2, arg3); and then define an init routine in the SearchResult class. (hope I got the java syntax right, I work with objC) Nils Ängquist wrote: > > If I create an object with for example: > > SearchResult myNewPage = (SearchResult)pageWithName("SearchResult"); > > How can I put initialisation code for that object i a similar way as > one normally can when using a constructor? > > TIA, > > - Nils > -- > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Nils Ängquist Sisyfos Produktion > Gibraltargatan 80 - 1114 http://www.sisyfos.com/ > SE-412 79 Göteborg > nils@sisyfos.com > +46 - 31 - 778 18 08 > +46 - 70 - 318 48 08 (cellphone) > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From mmalc at stepwise.com Wed Jul 5 08:49:30 2000 From: mmalc at stepwise.com (mmalcolm crawford) Date: Wed Jul 5 07:49:30 2000 Subject: Accessing objects in session In-Reply-To: Message-ID: Brian P. Marquis wrote: > try: > acctNumber = session.account().accountNumber(); > I'm not sure why these two lines warranted reposting the whole of the previous mail, since it's not clear: (a) to what they actually refer; (b) how they augment the previous mail; (c) how they would ever work in a component unless you'd already defined Session session = (Session)session(); which is sort of what the original questioner had missed anyway. ? To address one of the other original questions: > I have all my EOEnterpriseObjects defined in session.java. I'm not sure if > this is the best thing to do or not, > Maybe not... apart from anything else it may lead you into "bad habits". State storage is a tricky issue: when students on PWOI find out about the Session object, some seem to develop a mania for putting as much state information into the Session as possible. Remember that this may increase the memory overhead of your application if you "leave it lying around" after it's no longer needed. If a "piece of information" is only required by two or three components, you should consider simply passing it between them as required rather than storing it in the session. mmalc. From j-rochkind at nwu.edu Wed Jul 5 08:52:18 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Wed Jul 5 07:52:18 2000 Subject: Instantiating WOComponent with "new" vs. "pageWithName" In-Reply-To: <200007041350.GAA07772@scyther.omnigroup.com> Message-ID: <4.2.2.20000705094937.019eff18@hecky.acns.nwu.edu> Instantiating a component with pageWithName ought to set the component's context() to be the correct thing. It might do other things too, but I doubt it---I think it's just the context. Now, WOComponent doesn't seem to have any setContext() method, oddly. So even if you could configure a proper WOContext object, I'm not sure how you'd set it in the component yourself without pageWithName(). Really, while you might be able to find some workaround, the WO framework really wants you to use pageWithName(). Is there any reason you can't do the parameterized setup AFTER the instantiation? MyComponent component = (MyComponent) pageWithName("MyComponent"); component.setupWithParameters(param1, param2, param3); return component; --Jonathan At 06:53 AM 7/4/2000 -0700, you wrote: >Earlier in the year there was some discussion of the fact that >instantiating a WOComponent using "new" did not generate the same results >as using "pageWithName". I didn't see any fixes in the list archive. > >I've been bumping up against this in a couple of cases because I'm trying >to do some parameterized initialization and need to use "new". Comparing >2 objects that are supposed to be the same shows that using "new", >baseURL, name and path show the component where the instantiation was >done instead of the actual component, and there is no session. > >Does anyone know why this happens, and is there a clean way to "fix" it? > >One thing that's very strange, is that in a test where I created a temp >page with "pageWithName" and then created the real page with "new" (to >compare them), the two were identical! It didn't work if the real page >was instantiated first, though. That may be an effective workaround, >although there may be some side effects.... > >Any thoughts or other findings would be greatly appreciated. > >Happy 4th of July! > >Michael >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From ghopson at novazen.com Wed Jul 5 08:55:16 2000 From: ghopson at novazen.com (Geoff Hopson) Date: Wed Jul 5 07:55:16 2000 Subject: Bar charts, pie charts, etc. Message-ID: <200007051455.HAA27350@scyther.omnigroup.com> Check out www.corda.com for popcharts, and the accompanying WebObjects framework from Pat Homelvig at www.whitewolf.com Geoff > > Howdy, > > I'm working on a project that will require dynamic charts.........for > example a bar chart that shows the effect of inflation over 30 > years......real exciting stuff. > > Has anyone come across any nifty tools that does this and works well with > WO? Someone had mentioned JChart....had anyone used that? Suggestions > would be greatly appreciated. > > Thanks, > Eric. > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > > From caffeine at toodarkpark.org Wed Jul 5 08:55:30 2000 From: caffeine at toodarkpark.org (Howie) Date: Wed Jul 5 07:55:30 2000 Subject: Use of setAutoOpenInBrowser - Sorry In-Reply-To: <00ba01bfe68e$6f7d4b50$477ae0c3@dpugh> Message-ID: On Wed, 5 Jul 2000, Dylan wrote: > Sorry I have Managed to anwer my own Question .... > > [WOApplication setAutoOpenInBrowser:NO]; or -WOAutoOpenInBrowser NO from the cmd line (which is what I use all the time). --- Howie URL: http://www.toodarkpark.org "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." From michael at stb.nccom.com Wed Jul 5 08:56:59 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Wed Jul 5 07:56:59 2000 Subject: Two Apps - one Database -> Syncronization? References: <51325BD9D61DD31186A50040F6340DB806828E@smtp> <00b801bfe604$f6d42860$1501aa0a@seafax.com> Message-ID: <39634C64.F27BB73@getasia.com> > Keep in mind that error checking an asyncrhonous notification will always be > impossible, whether you use direct actions or D.O. To achieve a fail-safe > asynchronous notification system, you need to have a persistent event queue, > and objects that process that queue full time. It's not impossible. TimeWarp did it about 10-15 years ago (granted, it was a very different application domain, distributed scheduling with timestamp-based rollback). The key point: the event queue doesn't need to be 100% persistent; you just need a way to track what is the farthest point back in time that you might have to worry about. If I'm looking at something where A tells B 'X has changed at time T', then A needs to keep track of the notice until B says "Thank you", or a timeout occurs (and then the changed notice is resent), or a communications failure is returned (in which case B isn't around anymore). B, on receiving the notice, can either just say "I'll reload now", or it can say "I need to see if this change alters what I did back at T; if so, I need to change what I've done and send out my own changed notices". Cleanup of old time-propagated change notices was by a 2 phase time cleanup; phase one determined what was the oldest time this machine had to worry about, phase two was what is the oldest time that any one else has to worry about. Phase two's information then allows you to update your next phase one (and throw away the old stuff). And, if no one ever needs to worry about roll back (just reload and continue), then there's no need for any of the time tracking stuff, just the "what has or has not been ack'd" list. Michael From j-rochkind at nwu.edu Wed Jul 5 08:57:55 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Wed Jul 5 07:57:55 2000 Subject: Instantiating WOComponent with "new" vs. "pageWithName" In-Reply-To: References: <200007041350.GAA07772@scyther.omnigroup.com> <200007041350.GAA07772@scyther.omnigroup.com> Message-ID: <4.2.2.20000705095710.02142568@hecky.acns.nwu.edu> I'm not sure I understand your question, but you can bind a WOComponent to the "action" binding of a WOHyperlink. This binding must be bound to a method that returns a WOComponent, OR an iVar that is a WOComponent. Either will work. Of course, your action method doesn't need to return a WOComponent, it can actually return any WOActionResults in 4.5. (mainly meaning a WOResponse instead). So I assume that you can also bind the 'action' to a WOResponse. You probably CAN'T just bind it to a String containing XML. I don't work with XML, but isn't there some kind of object that conforms to WOActionResults that is meant for returning XML? Maybe a WOResponse set up the right way? Anyway, bind the 'action' binding to either a variable containing one of these, or a method returning one of these. Hope this helps, --Jonathan At 07:38 AM 7/4/2000 -0700, you wrote: >On a related note. One of my pages has a property that is a WOComponent, >in which there is a property containing an xml string. In debug mode, I >want to be able to click on a link to a page that shows the xml (IE5 on >Windows shows this xml nicely). > >The straightforward thing to do is to bind the xml component to the link >so the xml component is switched to when you click on the >link. Unfortunately I can't find a binding that will do this, as I can >find no documentation on WOHyperlink. Not here >http://developer.apple.com/techpubs/webobjects/System/Library/Frameworks/We >bObjects.framework/Java/WebObjectsTOC.html >Not in the little doc book icon in the WOBuilder inspector. > >I supposed I have to find that xml component object by name then set it to >essentially be a copy of the existing one? This is gross. > >Open source for the runtime! Or failing that, 100% perfect documentation. > >Dave >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From j-rochkind at nwu.edu Wed Jul 5 09:01:01 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Wed Jul 5 08:01:01 2000 Subject: Context error ... In-Reply-To: <014c01bfe5da$0b8db210$1300a8c0@yann> Message-ID: <4.2.2.20000705100022.0213b170@hecky.acns.nwu.edu> If there are any relationships in your EO, and those relationships are set to an EO from a different Editing Context (or not in an editing context at all!), you will get this confusingly indirect error. So what do you do with newOffer prior to inserting it? Do you set any relationships? If so, that's the problem. The best way to solve this would be to insert newOffer into the EC immediately after creating it, before setting any of it's relationships. If your problem isn't due to relationships, then I'm not sure. But that's what that error, counter-intuitively, always means for me. --Jonathan At 07:05 PM 7/4/2000 +0200, you wrote: >After refresh my navigator (by pressing my F5 key), if i make a saving >with this : > >session().defaultEditingContext().insertObject(newOffer); >session().defaultEditingContext().saveChanges(); > >my app return this error : > >Exception : NSInternalInconsistencyException: _globalIDForObject:: >EODatabaseContext 0x25866d8 unable to obtain global id for Category object >0x25cf640 from EOEditingContext 0x25ea188 >Do you know this problem ? From kobylins at informatik.tu-muenchen.de Wed Jul 5 09:07:31 2000 From: kobylins at informatik.tu-muenchen.de (Rafael K. Kobylinski) Date: Wed Jul 5 08:07:31 2000 Subject: Oracle Business Components for Java In-Reply-To: <002c01bfe68e$d7802fb0$4201010a@VIRTUAL> References: <002c01bfe68e$d7802fb0$4201010a@VIRTUAL> Message-ID: With Oracle Business Components for Java Oracle promises to offer similar functionality for their Application Server to what the WebObjects Framework and EOF provide us (at least thats what I understand from their high level white paper - I doubt they are really database independent). I am wondering if there is anyone on this list with hand-on experience with Oracle Business Components and the Oracle Application Server who could write a few words on how these products compare to WebObjects. I would also very appreciate any pointers to information on this subject. -- Rafael K. Kobylinski Email: kobylins@in.tum.de Institut für Informatik Tel. : ++ 49 89 289 22391 Technische Universität München Cell.: ++ 49 177 7 495020 From michael at stb.nccom.com Wed Jul 5 09:16:17 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Wed Jul 5 08:16:17 2000 Subject: EOKeyBinding warning - regarding capitalized key References: <200007040638.XAA04153@scv3.apple.com> Message-ID: <39635103.BBE395E7@getasia.com> > In the Java language and NeXT's ObjC conventions, methods and instance > variables, begin with lower case. Constants and class names (another kind > of constant) begin in uppercase. It makes it easier to just glance at code > and see what's going on. Without these conventions, a line like this by > itself is ambiguous: > > Foo.doSomething() > > Is Foo a class or is it a variable that happens to be capitalized. Ok so far. > KeyValueCoding is a concept that actually is finding support in that new MS > language and possibly in a future version of the JDK. The idea is to provide > a general purpose way for objects to exchange data with each other. The > protocol goes through various steps to push/pull a value... valueForKey > checks for the presence of accessor methods, a valueForKey method, and > ultimately an ivar. It prefers to use the method if present. But to use a > method it has to use runtime facilities to check for the presence of the > method. This takes time. If you have a convention for methods used as > accessors for key value coding, you can perform this faster and perhaps more > importantly, you can do it more reliably. > > So there are 2 wins: clearer code, and better runtime execution. And now this argument falls apart. If I know that lowercase means method, and uppercase means variable, then I can see the sense in what you are saying. But that's not how it works. According to key/value, there is no difference between a variable and a method. Anytime it sees a name, it has to either (A) just say "It's bad" without doing any checks, or (B) check the runtime for method or variable. And yes, (B) takes time. That's why the result of the search is cached -- so you only pay that price once per item. Again, what is wrong with saying NSData *d1, *d2, *d3; OddJoin *myJoin; d1 = [myFoo valueForKey: @"IDFoo"]; d2 = [myBar valueForKey: @"IDBar"]; d3 = [myBaz valueForKey: @"IDBaz"]; myJoin = [[OddJoin alloc] init]; [myJoin takeValue: d1 forKey: @"IDFoo"]; [myJoin takeValue: d2 forKey: @"IDBar"]; [myJoin takeValue: d3 forKey: @"IDBaz"]; EOF doesn't deal with 3 sided joins automatically. If I remember correctly, it was working with event, location, showtime, and review, as the tables/data. Review could (live stage shows) be dependent on event and location, or (restaraunts) on time as well (breakfast specials could be very different from dinners). Yes, it was a pain. From mgoodwin at mjgc.net Wed Jul 5 09:17:52 2000 From: mgoodwin at mjgc.net (Michael Goodwin) Date: Wed Jul 5 08:17:52 2000 Subject: Instantiating WOComponent with "new" vs. "pageWithName" Message-ID: <200007051517.IAA00340@scyther.omnigroup.com> 7/5/00 7:54 AM Jonathan Rochkind >Instantiating a component with pageWithName ought to set the component's >context() to be the correct thing. It might do other things too, but I >doubt it---I think it's just the context. > >Now, WOComponent doesn't seem to have any setContext() method, oddly. So >even if you could configure a proper WOContext object, I'm not sure how >you'd set it in the component yourself without pageWithName(). One more piece that's missing.... >Really, while you might be able to find some workaround, the WO framework >really wants you to use pageWithName(). Is there any reason you can't do >the parameterized setup AFTER the instantiation? It's ugly for one. You "should" be able to use a parameterized constructor to do a clean instantiation. I was trying to avoid a mess with display group reinitialization, etc. I *hate* hacking in workarounds because someone didn't design something properly.... I think it's a MAJOR bug having constructors that you can't use in certain cases because they don't do everything they're supposed to. The side effects are bizarre, particularly if you're new to WO. Thanks! Michael >MyComponent component = (MyComponent) pageWithName("MyComponent"); >component.setupWithParameters(param1, param2, param3); >return component; > >--Jonathan > >At 06:53 AM 7/4/2000 -0700, you wrote: >>Earlier in the year there was some discussion of the fact that >>instantiating a WOComponent using "new" did not generate the same results >>as using "pageWithName". I didn't see any fixes in the list archive. >> >>I've been bumping up against this in a couple of cases because I'm trying >>to do some parameterized initialization and need to use "new". Comparing >>2 objects that are supposed to be the same shows that using "new", >>baseURL, name and path show the component where the instantiation was >>done instead of the actual component, and there is no session. >> >>Does anyone know why this happens, and is there a clean way to "fix" it? >> >>One thing that's very strange, is that in a test where I created a temp >>page with "pageWithName" and then created the real page with "new" (to >>compare them), the two were identical! It didn't work if the real page >>was instantiated first, though. That may be an effective workaround, >>although there may be some side effects.... >> >>Any thoughts or other findings would be greatly appreciated. >> >>Happy 4th of July! >> >>Michael >>_______________________________________________ >>WebObjects mailing list >>WebObjects@omnigroup.com >>http://www.omnigroup.com/mailman/listinfo/webobjects > > > >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From ehermanson at gofish.com Wed Jul 5 09:19:28 2000 From: ehermanson at gofish.com (Eric Hermanson) Date: Wed Jul 5 08:19:28 2000 Subject: Workaround for Annoying ProjectBuilder Definition Search Bug? Message-ID: <010901bfe693$ceb1c100$1501aa0a@seafax.com> This is a multi-part message in MIME format. ------=_NextPart_000_0106_01BFE672.47151F10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable There is a bug in WO4.5/ProjectBuilder/MacOSXServer where the Find Panel = hangs when you attempt to perform a search by "Definitions". This bug = was "fixed" in 4.0, but it came back in 4.5. Does anyone know of a = workaround? - Eric ------=_NextPart_000_0106_01BFE672.47151F10 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
There is a bug in = WO4.5/ProjectBuilder/MacOSXServer=20 where the Find Panel hangs when you attempt to perform a search by=20 "Definitions".  This bug was "fixed" in 4.0, but it came back in = 4.5. =20 Does anyone know of a workaround?
 
- Eric
 
------=_NextPart_000_0106_01BFE672.47151F10-- From daniel.bleisteiner at metaobject.de Wed Jul 5 09:33:10 2000 From: daniel.bleisteiner at metaobject.de (Daniel Bleisteiner) Date: Wed Jul 5 08:33:10 2000 Subject: AW: Two Apps - one Database -> Syncronization? In-Reply-To: <39623116.89775AC7@solant.com> Message-ID: We mostly use relations to get objects and therefore i'm not sure where to look for the actual fetchspec. We tried to set this on the fetchspec of an early displaygroup we use to get one initial object. We also used isDeep to refetch all connected objects but it didn't work. How exactly should we set the fetchspec this way? Oliver Fox, Daniel Bleisteiner, MetaObject GmbH - Oranienburger Strasse 69, 10117 Berlin Tel: +49-30-285381-10, Fax: +49-30-285381-99 -----Ursprungliche Nachricht----- Von: webobjects-admin@omnigroup.com [mailto:webobjects-admin@omnigroup.com]Im Auftrag von Geoff Hopson Gesendet: Dienstag, 4. Juli 2000 20:47 An: Daniel Bleisteiner Cc: WebObjects Betreff: Re: Two Apps - one Database -> Syncronization? The following method on EOFetchSpecification works well for us in the same situation: - (void)setRefreshesRefetchedObjects:(BOOL)refreshesRefetchedObjects; Set it to YES, and the fetch spec will ignore the snapshot and fetch your objects directly from the database. Hope this helps, Geoff Daniel Bleisteiner wrote: > > Hi, > > i just have two different applications running the same database - a > storefront and the backoffice of a shop. Is it possible to tell the > storefront to refetch all changed objects from the database on > session-start? > > At this point we need to restart the storefront everytime the backoffice > changed objects. > > Daniel Bleisteiner, MetaObject GmbH > - > Oranienburger Strasse 69, 10117 Berlin > Tel: +49-30-285381-10, Fax: +49-30-285381-99 > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects _______________________________________________ WebObjects mailing list WebObjects@omnigroup.com http://www.omnigroup.com/mailman/listinfo/webobjects From wlm at umich.edu Wed Jul 5 09:43:46 2000 From: wlm at umich.edu (Bill Merrill) Date: Wed Jul 5 08:43:46 2000 Subject: Making links to show a record In-Reply-To: <200007051502.IAA28906@scyther.omnigroup.com> Message-ID: I'm working through my first non-tutorial project with WebObjects and have run into a problem that I'd appreciate some help with. The Getting Started tutorial shows how to generate a list of records, how to display information from a record in form fields by clicking on an element in the list, and then finally, how to go to another page and show even more information based on your selection. I'd like to generate a list of records with links that will directly send the user to a new page with more details about that record. So far, I've tried modifying the code generated by the Wizard for a display selected record component, along with the "Show Details" code from the Movie example. In the "Workspace" component a list of components is generated, and each is linked to this method: public WOComponent showDetailsAtOnce() { selectObject(); WOComponent nextPage = pageWithName("PreviewBigIdea"); EOEnterpriseObject selection = (EOEnterpriseObject)bigideaDisplayGroup.selectedObject(); ((PreviewBigIdea)nextPage).setSelectedBigidea(selection); return nextPage; } and here's selectObject: public void selectObject() { bigideaDisplayGroup.selectObject(bigidea); } PreviewBigIdea bails during the call to setSelectedBigidea. This is the code: public void setSelectedBigidea(EOEnterpriseObject newSelectedBigidea) { selectedBigidea = newSelectedBigidea; bigideaDisplayGroup.setMasterObject(newSelectedBigidea); } and this is the dump: Uncaught exception: com.apple.yellow.foundation.NSException qualifyWithRelationshipKey:ofObject:: EODatabaseDataSource 0x191dd38 entity BigIdea has no relationship named *nil* at PreviewBigIdea.setSelectedBigidea(PreviewBigIdea.java:17) at Workspace2.showDetailsAtOnce(Workspace2.java:49) I don't understand the error, though I'm still trying to figure it out. If someone has insight into my problem, or can better yet point me towards a better direction to accomplish my task I'd be grateful. Bill Merrill <> wlm@umich.edu <> http://www.eecs.umich.edu/~wlm/ "If this paradise, I wish I had a lawn-mower" From pierce at twinforces.com Wed Jul 5 09:47:59 2000 From: pierce at twinforces.com (Pierce T. Wetter III) Date: Wed Jul 5 08:47:59 2000 Subject: Bar charts, pie charts, etc. In-Reply-To: <7A69F7FAA422D31195DB0000F6AB4EBB029BADCF@msxnyusr02.wins.tiaa-cref.org> Message-ID: on 7/5/00 7:27 AM, Schneider, Eric at ESchneider@tiaa-cref.org wrote: > Howdy, > > I'm working on a project that will require dynamic charts.........for > example a bar chart that shows the effect of inflation over 30 > years......real exciting stuff. > > Has anyone come across any nifty tools that does this and works well with > WO? Someone had mentioned JChart....had anyone used that? Suggestions > would be greatly appreciated. > OpenGraph from VVI: http://www.vvi.com Pierce From mmalc at stepwise.com Wed Jul 5 09:48:55 2000 From: mmalc at stepwise.com (mmalcolm crawford) Date: Wed Jul 5 08:48:55 2000 Subject: EOKeyBinding warning - regarding capitalized key In-Reply-To: <39635103.BBE395E7@getasia.com> Message-ID: Michael Gersten wrote: > And now this argument falls apart. If I know that lowercase means > method, and uppercase means variable, then I can see the sense in what > you are saying. > The whole point is that it shouldn't matter if the "variable" is a real ivar or a method. And convention states that the class name should start with a capital letter, so that doesn't leave many options for variables... > Again, what is wrong with saying > [...] > d1 = [myFoo valueForKey: @"IDFoo"]; > What happens if you have both an ivar IDFoo, and accessor methods [get]IDFoo() and setIDFoo()? Is KVC supposed to guess that the accessor methods actually access IDFoo, or might there be another variable iDFoo? (Try it in WOBuilder and see what happens.) I don't see how any different convention would have helped your 3-sided join? mmalc. From daniel.bleisteiner at metaobject.de Wed Jul 5 10:02:29 2000 From: daniel.bleisteiner at metaobject.de (Daniel Bleisteiner) Date: Wed Jul 5 09:02:29 2000 Subject: Images with SPACE in filename don't show up in Netscape... Message-ID: I just discovered that WO doesn't substitute spaces in hrefs with %20 and therefore Netscape doesn't show images with spaces in their filename. I could work around this problem using other imagefilenames but i'm wondering if there is a general switch in WO to do this substitution. Daniel Bleisteiner, MetaObject GmbH - Oranienburger Strasse 69, 10117 Berlin Tel: +49-30-285381-10, Fax: +49-30-285381-99 From scottc at centricsystems.ca Wed Jul 5 11:10:25 2000 From: scottc at centricsystems.ca (Scott Corscadden) Date: Wed Jul 5 10:10:25 2000 Subject: Workaround for Annoying ProjectBuilder Definition Search Bug? References: <010901bfe693$ceb1c100$1501aa0a@seafax.com> Message-ID: <39636BDD.5BCF26F6@centricsystems.ca> Hmm.. I've got your configuration and I'm able to search by Definitions without a problem. ScottC Eric Hermanson wrote: > > There is a bug in WO4.5/ProjectBuilder/MacOSXServer where the Find Panel hangs when you attempt to perform a search by "Definitions". This bug was "fixed" in 4.0, but it came back in 4.5. Does anyone know of a workaround? From leon at drakeassociates.com Wed Jul 5 11:15:59 2000 From: leon at drakeassociates.com (Leon Amdour) Date: Wed Jul 5 10:15:59 2000 Subject: WO and Win2000 Message-ID: <4.3.2.7.1.20000705101537.00b03c80@drakeassociates.com> Hi, everyone. Can anyone tell me if WO4.5 works with Win2000, and if it does, are there any problems I need to be aware of. Thanks a lot. Leon From beast at thor.running-start.com Wed Jul 5 11:23:35 2000 From: beast at thor.running-start.com (Jon Eddy) Date: Wed Jul 5 10:23:35 2000 Subject: Workaround for Annoying ProjectBuilder Definition Search Bug? Message-ID: <200007051723.KAA26618@thor.running-start.com> I've noticed (on 4.0 and 4.5 on OSXS) that the find panel stops redrawing sometimes, possibly when you interrupt a search by Definition by hitting Stop. The workaround is to move the window around, which forces it to redraw. Completely irritating, and restarting PB seems to be the only way to really fix it. beast > > Hmm.. I've got your configuration and I'm able to search by Definitions without a > problem. > > ScottC > > Eric Hermanson wrote: > > > > There is a bug in WO4.5/ProjectBuilder/MacOSXServer where the Find Panel > hangs when you attempt to perform a search by "Definitions". This bug was "fixed" > in 4.0, but it came back in 4.5. Does anyone know of a workaround? > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > > From bigdog at bulldogbeach.com Wed Jul 5 11:35:51 2000 From: bigdog at bulldogbeach.com (Gary Teter) Date: Wed Jul 5 10:35:51 2000 Subject: Multiple framework versions? In-Reply-To: <200007020252.VAA01794@elmls01.ce.mediaone.net> Message-ID: on 7/1/00 7:48 PM, Todd Thomas at rtthomas@mediaone.net wrote: >> Is it possible to version an application ("deploy as A/B/C")? > > /Local/Applications/MyApp/Version_1.2/Blah.app > /Local/Applications/MyApp/Version_1.3/Blah.app :-) > >> ....Or should I just bite the bullet and rename my frameworks every single >> time I rev them? This is the worst possible option, of course, because I'll >> have to go through all my .wods and re-set the "framework" parameter on all >> my woimages, for example. :( > > Where I used to work we had frameworks we deployed across OPENSTEP/Mach and > OPENSTEP/NT. For both OSes we used paths for versioning... So we had something > like: > > /Local/Library/Frameworks/MyStuff/Ver_01/MyFoundation.framework > Ver_01/MyAppKit.framework > Ver_02/MyFoundation.framework > ...etc > > It worked well on both platforms and you don't have to play around with > major/minor version number framework stuff. I also think that would solve any > of the problems you listed above if they aren't already fixed in 4.5. This sounds like it should work great, but being a dog of very little brain, I can't get it to work! :( I can get everything to build fine (WO 4.5, NT, Java), but at run time my WOApp just quits with a java classdef class not found error. Having burned nearly a whole day exploring the mysteries of makefiles and poring through documentation that dates back to Rhapsody(!), I am now officially frustrated. Here's what I did, maybe someone can point out my mistake: Remove all traces of old frameworks from C:\Apple\Local\Library\Frameworks For each versioned framework, Change "Install In" in the inspector to $(LOCAL_LIBRARY_DIR)/Frameworks/MyStuff/Ver_01 For frameworks which define WOComponents, change INSTALLDIR_WEBSERVER in Makefile.preamble to $(WEBSERVER_DOCROOT)/WebObjects/Frameworks/MyStuff/Ver_01 make clean, make install For each versioned application, Change "Install In" to $(LOCAL_LIBRARY_DIR)/WebObjects/Applications/MyStuff/Ver_01 Change INSTALLDIR_WEBSERVER in Makefile.preamble to $(WEBSERVER_DOCROOT)/WebObjects/Apps/MyStuff/Ver_01 make clean, make install For each application or framework that depends on a versioned framework, remove all previous non-versioned frameworks from the project, remove C:\Apple\Local\Library\Frameworks from the framework search order in the inspector, add the versioned frameworks to the project (adding new location to framework search order), make clean, make install I also noticed that framework dlls are now being put into C:\Local\Library\Frameworks\MyStuff\Executables instead of C:\Local\Library\Executables, so I tried adding that to the system path to no avail. (Also tried simply moving them by hand to me old location to no avail.) (Also tried setting DYLD_LIBRARY_PATH -- hey, I'm desperate by now :-) (Also this would appear to defeat the benefit of having versioned frameworks, right? Shouldn't dlls be put somewhere like C:\Local\Library\Frameworks\MyStuff\Ver_01\Executables?) Anyway.... none of this worked, and I'm back to square one. Any suggestions? What obvious-to-the-experienced configuration tidbit am I missing? -- Gary Teter, Big Dog Bulldog Beach Interactive http://www.bulldogbeach.com "Fun will now commence." -- Seven of Nine From schnitz at round1.com Wed Jul 5 11:38:02 2000 From: schnitz at round1.com (Ray Schnitzler) Date: Wed Jul 5 10:38:02 2000 Subject: Workaround for Annoying ProjectBuilder Definition Search Bug? Message-ID: In our experience, it seems that this happens when you start a definition search by clicking the button. Searching by hitting doesn't cause the problem. Also, the find panel is not really hung, but the display doesn't get updated. As Jon says, moving the window forces a redraw, but so does changing focus away and back. The find panel will continue to function in this broken way until you restart PB. This also happens (or used to) on NT (if you're unfortunate enough to use it). Moral: Don't use the button to start the search - type the text and hit . Ray > -----Original Message----- > From: Jon Eddy [mailto:beast@thor.running-start.com] > Sent: Wednesday, July 05, 2000 10:23 AM > To: Scott Corscadden > Cc: webobjects@omnigroup.com > Subject: Re: Workaround for Annoying ProjectBuilder Definition Search > Bug? > > > I've noticed (on 4.0 and 4.5 on OSXS) that the find panel stops > redrawing sometimes, possibly when you interrupt a search by > Definition by hitting Stop. The workaround is to move the window > around, which forces it to redraw. Completely irritating, and > restarting PB seems to be the only way to really fix it. > > beast > > > > > > Hmm.. I've got your configuration and I'm able to search by > Definitions without a > > problem. > > > > ScottC > > > > Eric Hermanson wrote: > > > > > > There is a bug in WO4.5/ProjectBuilder/MacOSXServer where the > Find Panel > > hangs when you attempt to perform a search by "Definitions". This > bug was "fixed" > > in 4.0, but it came back in 4.5. Does anyone know of a workaround? > > _______________________________________________ > > WebObjects mailing list > > WebObjects@omnigroup.com > > http://www.omnigroup.com/mailman/listinfo/webobjects > > > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > From bigdog at bulldogbeach.com Wed Jul 5 12:00:44 2000 From: bigdog at bulldogbeach.com (Gary Teter) Date: Wed Jul 5 11:00:44 2000 Subject: AW: Two Apps - one Database -> Syncronization? In-Reply-To: Message-ID: on 7/5/00 8:34 AM, Daniel Bleisteiner at daniel.bleisteiner@metaobject.de wrote: > We mostly use relations to get objects and therefore i'm not sure where to > look for the actual fetchspec. We tried to set this on the fetchspec of an > early displaygroup we use to get one initial object. We also used isDeep to > refetch all connected objects but it didn't work. > > How exactly should we set the fetchspec this way? In that case what you can do is call editingContext.invalidateObjectsWithGlobalIDs( NSArray globalIDsOfObjectsToInvalidate); being careful to only invalidate the specific source objects you need refreshed. This should ensure that related objects are also refreshed. (There's also an invalidate method which will invalidate everything everywhere but it's generally way too heavy-handed to use in practice.) -- Gary Teter, Big Dog Bulldog Beach Interactive http://www.bulldogbeach.com People should come with a well-defined API. From phil.rankin at athensgroup.com Wed Jul 5 12:21:28 2000 From: phil.rankin at athensgroup.com (Phil Rankin) Date: Wed Jul 5 11:21:28 2000 Subject: Java Bridge help needed Message-ID: I am new to this WO environment and I am attempting to implement an Objective-C object that I can subclass with Java. Where can I find a simple framework example and Java project example that illustrates this concept? I have tried using the document Using the Java Bridge and things are not working as described. I have WO 4.5 installed and I am using Windows NT. Any help or pointers to examples would be greatly appreciated. Thanks, Phil =================================== Phil Rankin Athens Group An employee-owned consulting firm, specializing in technology strategy and custom software development. http://www.athensgroup.com =================================== From tthomas at pros.com Wed Jul 5 12:25:52 2000 From: tthomas at pros.com (Todd Thomas) Date: Wed Jul 5 11:25:52 2000 Subject: Multiple framework versions? In-Reply-To: Message-ID: <0007051324.AA234731@io> Gary, I probably should have mentioned that we'd never done this for WebObjects stuff or anything that included Java (though it should be doable). Your problem could be that when you install a framework it tries to find the dll relative to it via ../Executables/MyFramework. So I'd do your versioning path higher up such that you have: /Apple/Local/MyStuff/Ver_01/Frameworks/blah.framework /Apple/Local/MyStuff/Ver_01/Executables/blah.dll Then from the framework the dll will be found. Let me know if this solves it. todd Gary Teter wrote: > on 7/1/00 7:48 PM, Todd Thomas at rtthomas@mediaone.net wrote: > > >> Is it possible to version an application ("deploy as A/B/C")? > > > > /Local/Applications/MyApp/Version_1.2/Blah.app > > /Local/Applications/MyApp/Version_1.3/Blah.app :-) > > > >> ....Or should I just bite the bullet and rename my frameworks every single > >> time I rev them? This is the worst possible option, of course, because I'll > >> have to go through all my .wods and re-set the "framework" parameter on all > >> my woimages, for example. :( > > > > Where I used to work we had frameworks we deployed across OPENSTEP/Mach and > > OPENSTEP/NT. For both OSes we used paths for versioning... So we had something > > like: > > > > /Local/Library/Frameworks/MyStuff/Ver_01/MyFoundation.framework > > Ver_01/MyAppKit.framework > > Ver_02/MyFoundation.framework > > ...etc > > > > It worked well on both platforms and you don't have to play around with > > major/minor version number framework stuff. I also think that would solve any > > of the problems you listed above if they aren't already fixed in 4.5. > > This sounds like it should work great, but being a dog of very little brain, > I can't get it to work! :( > > I can get everything to build fine (WO 4.5, NT, Java), but at run time my > WOApp just quits with a java classdef class not found error. > > Having burned nearly a whole day exploring the mysteries of makefiles and > poring through documentation that dates back to Rhapsody(!), I am now > officially frustrated. Here's what I did, maybe someone can point out my > mistake: > > Remove all traces of old frameworks from C:\Apple\Local\Library\Frameworks > > For each versioned framework, > Change "Install In" in the inspector to > $(LOCAL_LIBRARY_DIR)/Frameworks/MyStuff/Ver_01 > For frameworks which define WOComponents, change > INSTALLDIR_WEBSERVER in Makefile.preamble to > $(WEBSERVER_DOCROOT)/WebObjects/Frameworks/MyStuff/Ver_01 > make clean, make install > > For each versioned application, > Change "Install In" to > $(LOCAL_LIBRARY_DIR)/WebObjects/Applications/MyStuff/Ver_01 > Change INSTALLDIR_WEBSERVER in Makefile.preamble to > $(WEBSERVER_DOCROOT)/WebObjects/Apps/MyStuff/Ver_01 > make clean, make install > > For each application or framework that depends on a versioned framework, > remove all previous non-versioned frameworks from the project, > remove C:\Apple\Local\Library\Frameworks from the framework > search order in the inspector, > add the versioned frameworks to the project (adding new location to > framework search order), > make clean, make install > > I also noticed that framework dlls are now being put into > C:\Local\Library\Frameworks\MyStuff\Executables instead of > C:\Local\Library\Executables, so I tried adding that to the system path to > no avail. > > (Also tried simply moving them by hand to me old location to no avail.) > > (Also tried setting DYLD_LIBRARY_PATH -- hey, I'm desperate by now :-) > > (Also this would appear to defeat the benefit of having versioned > frameworks, right? Shouldn't dlls be put somewhere like > C:\Local\Library\Frameworks\MyStuff\Ver_01\Executables?) > > Anyway.... none of this worked, and I'm back to square one. Any suggestions? > What obvious-to-the-experienced configuration tidbit am I missing? > > -- > Gary Teter, Big Dog > Bulldog Beach Interactive http://www.bulldogbeach.com > "Fun will now commence." -- Seven of Nine > --- Todd Thomas Proactive Software tthomas@pros.com From bmarquis at ogse.com Wed Jul 5 12:58:58 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Wed Jul 5 11:58:58 2000 Subject: unableToSetNilForKey Message-ID: I need to be able to override unableToSetNilForKey, but I want the default behavoir for the fields I'm not checking. I tried super.unableToSetNilForKey( keyname ); but that method doesn't exist in EOCustomObject. public void unableToSetNilForKey(String keyname) { if ( keyname.equals("qty") ) { qty = 0; } else { // not sure what goes here } } From j-rochkind at nwu.edu Wed Jul 5 13:13:40 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Wed Jul 5 12:13:40 2000 Subject: unableToSetNilForKey In-Reply-To: Message-ID: <4.2.2.20000705141011.023d5ed0@hecky.acns.nwu.edu> I don't know why you can't call the superclass implementation---NSObject is SUPPOSED to implement this, and your EO is descended from NSObject, even if EOCustomObject doesn't implement the method itself. But, the default behavior is simply to raise an exception. The documentation says it's a NSInvalidArgumentException. But, of course, the frameworks have this incredibly bizarre (at least to me) way of setting up the class hierarchy/graph for exceptions. So I have no idea how to actually create an "NSInvalidArgumentException" to throw (it doesn't have it's own Java class in the class browser. Do you create a normal NSException and then set it up the right way? I don't know). Maybe some old school guru can tell you how to properly throw an NSInvalidArgumentException in Java. Myself, I'd just do this (bad, but it'll work unless you are trying to catch the exception somewhere). throw new NSException("Invalid argument: Can't take nil value for scalar"); Or whatever. --Jonathan At 02:04 PM 7/5/2000 -0500, you wrote: >I need to be able to override unableToSetNilForKey, but I want the default >behavoir for the fields I'm not checking. I tried >super.unableToSetNilForKey( keyname ); but that method doesn't exist in >EOCustomObject. > > public void unableToSetNilForKey(String keyname) { > if ( keyname.equals("qty") ) { > qty = 0; > } else { > // not sure what goes here > } > } >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From jmiller at ecashtech.com Wed Jul 5 13:14:24 2000 From: jmiller at ecashtech.com (jmiller@ecashtech.com) Date: Wed Jul 5 12:14:24 2000 Subject: frameworks ... where are they? Message-ID: <6FD4D24264E1D311A29A00508B8BC9C112CDD9@MAIL1> Does anybody know, if there is something like www.woframeworkcentral.com, where everybody can post his frameworks and everybody else can search and download frameworks (and maybe rate them afterwards)? Framework ... Use case ... Download URL .... Price (if commercial) ... User rates J From bmarquis at ogse.com Wed Jul 5 13:29:09 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Wed Jul 5 12:29:09 2000 Subject: unableToSetNilForKey Message-ID: I've made the following changes to my class, but still get the NSInvalidArgumentException, and the println never gets executed. Wierd. Any ideas? public void unableToSetNullForKey( String keyname ) { System.out.println( keyname + "\n" ); if ( keyname.equals("qty") ) { qty = 0; } else { super.unableToSetNullForKey( keyname ); } } > -----Original Message----- > From: Brian P. Marquis [SMTP:bmarquis@ogse.com] > Sent: Wednesday, July 05, 2000 2:05 PM > To: Multiple recipients of list (E-mail) > Subject: unableToSetNilForKey > > I need to be able to override unableToSetNilForKey, but I want the default > behavoir for the fields I'm not checking. I tried > super.unableToSetNilForKey( keyname ); but that method doesn't exist in > EOCustomObject. > > public void unableToSetNilForKey(String keyname) { > if ( keyname.equals("qty") ) { > qty = 0; > } else { > // not sure what goes here > } > } > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From jness at greatergood.com Wed Jul 5 13:35:05 2000 From: jness at greatergood.com (Jonathan Ness) Date: Wed Jul 5 12:35:05 2000 Subject: How to reference a WO website ? In-Reply-To: Message-ID: <0007051234.AA090229@jness> If you are able to supply arbitrary links to the search engines, you could certainly have a bunch of direct actions which return the various pages of your WebObjects application. -J Gregory Bernard wrote: > Dear users, > > > How would you proceed to reference a web site that uses WebObjects ? > > The first page of our site is dynamicŠ  > > We've got problem to have a high ranking level on the various search > engines. > > > Any idea will be welcome. From jness at greatergood.com Wed Jul 5 13:39:58 2000 From: jness at greatergood.com (Jonathan Ness) Date: Wed Jul 5 12:39:58 2000 Subject: Cannot connect to Sybase In-Reply-To: <39609D3E.E15055FC@bancoval.es> Message-ID: <0007051239.AA0174812@jness> I would guess that the machine you're able to connect to using isql is not the same database/machine your application is trying to connect to. Did you turn on -EOAdaptorDebugEnabled YES and see what database it is trying to hit? -J "Carlos Gonzalez Sanchez" wrote: > I actually can connect using isql from the deployment machine. And the > connection dictionary has a hostname that is included in the "interfaces" file > of Sybase. > > For some reason, I think WebObjects does not reach the interfaces file. But I > have the SYBASE_HOME variable pointing to the right path. > > ¿What else can I try? > > David Andrew Knight wrote: > > > Hi, > > > > You wrote: > > > Error: > > > EOGeneralAdaptorException > > > Reason: > > > Exception occured while evaluating > > > xxxxxDisplayGroup.qualifyDataSource', on target:
: > > > Sybase: ct_connect(): network packet layer: internal net library > > > error: Net-Lib protocol driver call to connect two endpoints failed > > > Socket connect failed - errno 0 > > > > Have you actually tested you can connect to the database server from the > > deployment machine ?, using isql or something. > > > > Once you can prove the machine can connect to the database server you should > > then check the EOModel, is the connection dictionary correct, maybe the > > machine had an alias under NT that is not available on the HP system. > > > > --- > > Regards David Knight | OneStep Solutions Plc | Solutions > > | | Workstations > > Innovative Solutions | UK phone: 01702 426400 | Servers > > For MacOS X, Windows NT | fax: 01702 426420 | Security > > OPENSTEP and Solaris | Int'l prefix: +44 1702 | Networks > > using Yellow Box and | | Maintenance > > WebObjects technologies | http://www.onestep.co.uk | Support > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > From chill at global-village.net Wed Jul 5 13:42:26 2000 From: chill at global-village.net (Chuck Hill) Date: Wed Jul 5 12:42:26 2000 Subject: unableToSetNilForKey References: Message-ID: <39638FE8.24003C5B@global-village.net> Notice > public void unableToSetNullForKey( String keyname ) { ^^^^ > > I need to be able to override unableToSetNilForKey, but I want the default ^^^ Change it to public void unableToSetNilForKey( String keyname ) { and you may be much happier! Chuck "Brian P. Marquis" wrote: > > I've made the following changes to my class, but still get the > NSInvalidArgumentException, and the println never gets executed. Wierd. Any > ideas? > > public void unableToSetNullForKey( String keyname ) { > System.out.println( keyname + "\n" ); > if ( keyname.equals("qty") ) { > qty = 0; > } else { > super.unableToSetNullForKey( keyname ); > } > } > > > -----Original Message----- > > From: Brian P. Marquis [SMTP:bmarquis@ogse.com] > > Sent: Wednesday, July 05, 2000 2:05 PM > > To: Multiple recipients of list (E-mail) > > Subject: unableToSetNilForKey > > > > I need to be able to override unableToSetNilForKey, but I want the default > > behavoir for the fields I'm not checking. I tried > > super.unableToSetNilForKey( keyname ); but that method doesn't exist in > > EOCustomObject. > > > > public void unableToSetNilForKey(String keyname) { > > if ( keyname.equals("qty") ) { > > qty = 0; > > } else { > > // not sure what goes here > > } > > } > > _______________________________________________ > > WebObjects mailing list > > WebObjects@omnigroup.com > > http://www.omnigroup.com/mailman/listinfo/webobjects > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects -- Chuck Hill chill@global-village.net Global Village Consulting Inc. http://www.global-village.net From bigdog at bulldogbeach.com Wed Jul 5 13:48:15 2000 From: bigdog at bulldogbeach.com (Gary Teter) Date: Wed Jul 5 12:48:15 2000 Subject: Multiple framework versions? In-Reply-To: <0007051324.AA234731@io> Message-ID: on 7/5/00 11:24 AM, Todd Thomas at tthomas@pros.com wrote: > Gary, > > I probably should have mentioned that we'd never done this for WebObjects > stuff or anything that included Java (though it should be doable). > > Your problem could be that when you install a framework it tries to find the > dll relative to it via ../Executables/MyFramework. So I'd do your versioning > path higher up such that you have: > > /Apple/Local/MyStuff/Ver_01/Frameworks/blah.framework > /Apple/Local/MyStuff/Ver_01/Executables/blah.dll > > Then from the framework the dll will be found. > Let me know if this solves it. Unfortunately, no. I can't figure out how to get the app to see the frameworks built in the new location: > Running 'MyStuffDemo.woa'... Jul 05 12:40:04 MyStuff Demo[329] *** : Cannot initialize because: java/lang/NoClassDefFoundError: MyApplication Stack Trace: java.lang.NoClassDefFoundError: MyApplication > Finished running 'MyStuffDemo.woa' The frustrating part is that I'm sure there's one silly option to pass to the linker, or set in a plist, or something, somewhere that will fix this.... -- Gary Teter, Big Dog Bulldog Beach Interactive http://www.bulldogbeach.com That's nothing a really big hammer wouldn't fix. From jness at greatergood.com Wed Jul 5 14:01:11 2000 From: jness at greatergood.com (Jonathan Ness) Date: Wed Jul 5 13:01:11 2000 Subject: Two Apps - one Database -> Syncronization? In-Reply-To: <00ae01bfe604$1da9ace0$1501aa0a@seafax.com> Message-ID: <0007051259.AA4668013@jness> Yeah, on our WOF-driven storefront, we have a recache direct action which must be hit manually when someone changes an item in the backoffice. It works fine and is way easier than implementing a change notification framework... -J "Eric Hermanson" wrote: > WebObjects already has a form of distributed notification -- it's called > HTTP! Why not just send a direct action containing archived versions of the > global ID's of changed object(s) to all apps registered in Monitor (e.g. > MyApp.woa/1, MyApp.woa/2, etc). The direct action handlers for all of the > registered apps can then invalidate the corresponding EO's in their private > object stores. > > There are several useful classes in WO4.5 that you can use/subclass to get > this to work: > > WODirectAction > WORequestHandler > WOMessage/WORequest/WOResponse > WOHTTPConnection > > I guess you could also write a distributed EOObjectStore that acted as the > parent object store for all apps, but that might be way too slow. > > - Eric > > > > ----- Original Message ----- > From: "Paul R. Summermatter" > To: "'Daniel Bleisteiner'" > Cc: > Sent: Tuesday, July 04, 2000 3:43 PM > Subject: RE: Two Apps - one Database -> Syncronization? > > > > Daniel et al, > > > > > > > > This is a major issue that needs addressing by Apple. Many of us > > who have dealt with large projects or projects which require up to the > > second data synchronization have endeavored to build various flavors of > > distributed notification servers to deal with this problem (I've done this > > twice now, once in objective-c and once in java). While I have tremendous > > respect for Eric Noyeau and I have yet to read his latest treatise on this > > subject, I respectfully diagree with him on the subject of distributed > > notification, and I truly believe that some form of distributed > notification > > is the appropriate solution for this problem. That is, everytime an > object > > is inserted/updated/deleted in one app instance, all other interested app > > instances are immediately notified of this modification in the object > graph. > > Many web app server vendors offer this as a feature, and I think WOF would > > greatly benefit from some sort of real time synchronization > implementation. > > Further, I think the synchornization mechanism should be opensourced so > that > > we may all contribute to its feature set. > > > > > > > > Regards, > > Paul > > > > [ -----Original Message----- > > [ From: Daniel Bleisteiner [mailto:daniel.bleisteiner@metaobject.de] > > [ Sent: Tuesday, July 04, 2000 2:37 PM > > [ To: WebObjects > > [ Subject: Two Apps - one Database -> Syncronization? > > [ > > [ > > [ Hi, > > [ > > [ i just have two different applications running the same database - a > > [ storefront and the backoffice of a shop. Is it possible to tell the > > [ storefront to refetch all changed objects from the database on > > [ session-start? > > [ > > [ At this point we need to restart the storefront everytime the > > [ backoffice > > [ changed objects. > > [ > > [ Daniel Bleisteiner, MetaObject GmbH > > [ - > > [ Oranienburger Strasse 69, 10117 Berlin > > [ Tel: +49-30-285381-10, Fax: +49-30-285381-99 > > [ > > [ _______________________________________________ > > [ WebObjects mailing list > > [ WebObjects@omnigroup.com > > [ http://www.omnigroup.com/mailman/listinfo/webobjects > > [ > > _______________________________________________ > > WebObjects mailing list > > WebObjects@omnigroup.com > > http://www.omnigroup.com/mailman/listinfo/webobjects > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > From jness at greatergood.com Wed Jul 5 14:09:46 2000 From: jness at greatergood.com (Jonathan Ness) Date: Wed Jul 5 13:09:46 2000 Subject: WO with B2C ? In-Reply-To: <002c01bfe68e$d7802fb0$4201010a@VIRTUAL> Message-ID: <0007051308.AA4747114@jness> --PopOver-2.0.150-962827727-2 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Content-Disposition: inline RunningStart makes a WebObjects commerce engine which sounds like what you want. It doesn't suck. http://www.runningstart.com/solutions/ecommerce.html -J "Mariano Barcia" wrote: > [962827516_16.html][Mariano Eugenio Barcia.vcf] --PopOver-2.0.150-962827727-2 Content-Type: multipart/mixed; boundary="PopOver-2.0.150-962827727-1" Content-Transfer-Encoding: 7bit --PopOver-2.0.150-962827727-1 Content-Type: text/enriched; charset=us-ascii Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Helvetica0000,0000,0000 RunningStart makes a WebObjects commerce engine which sounds like what you want. It doesn't suck. http://www.runningstart.com/solutions/ecommerce.html -J "Mariano Barcia" < wrote: > --PopOver-2.0.150-962827727-1 Content-Type: text/html; name="962827516_16.html"; x-unix-mode=0644 Content-Transfer-Encoding: base64 Content-ID: <0007051308.AA4749515@jness> Content-Disposition: attachment; filename="962827516_16.html" PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv L0VOIj4KPEhUTUw+PEhFQUQ+CjxNRVRBIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28t ODg1OS0xIiBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZT4KPE1FVEEgY29udGVudD0iTVNIVE1MIDUu MDAuMjkxOS42MzA3IiBuYW1lPUdFTkVSQVRPUj4KPFNUWUxFPjwvU1RZTEU+CjwvSEVBRD4KPEJP RFkgYmdDb2xvcj0jZmZmZmZmPgo8RElWPjxGT05UIHNpemU9Mj5wZW9wbGU6PC9GT05UPjwvRElW Pgo8RElWPjxGT05UIHNpemU9Mj48L0ZPTlQ+Jm5ic3A7PC9ESVY+CjxESVY+PEZPTlQgc2l6ZT0y PiZuYnNwOyZuYnNwOyZuYnNwOyBJIHdhbnQgdG8ga25vdyBpZiBXTyBvZmZlcnMmbmJzcDtjb21w b25lbnRzIApmb3IgYnVpbGRpbmcgYSByZXRhaWwgc3RvcmUgb25saW5lIChjYXRhbG9nLCBwcm9k dWN0cywgb3JkZXJzLCBldGMuKS4gSat2ZSBmb3VuZCAKc3VjaCBhIHBhY2thZ2UgaW4mbmJzcDtG bGFzaExpbmUuY29tIChFbnRlcnByaXNlIEJ1c2luZXNzIENvbXBvbmVudHMgZnJvbSAKRGlhbWVs bGUgVGVjaG5vbG9naWVzKSZuYnNwO2J1dCBJIGNvdWxkIG5vdCBkb3dubG9hZCB0aGUgZGVtbyB5 ZXQgYmVjYXVzZSBvZiBhIApwcm9ibGVtIHdpdGggYSBEaWFtZWxsZatzJm5ic3A7bGljZW5zZSAo SSBoYXZlIHRvIHdhaXQgdW50aWwgSnVseSA1dGgpLiBCZXNpZGVzLCAKSSBkb26rdCBrbm93IGlm IHRoZXNlJm5ic3A7Y29tcG9uZW50cyBjb3VsZCBiZSBpbnRlZ3JhdGVkIHdpdGhpbiBBcHBsZSAK V2ViT2JqZWN0cy48L0ZPTlQ+PC9ESVY+CjxESVY+PEZPTlQgc2l6ZT0yPjwvRk9OVD4mbmJzcDs8 L0RJVj4KPERJVj48Rk9OVCBzaXplPTI+VElBPC9GT05UPjwvRElWPgo8RElWPjxGT05UIHNpemU9 Mj48L0ZPTlQ+Jm5ic3A7PC9ESVY+CjxESVY+PEZPTlQgc2l6ZT0yPk1hcmlhbm8gQmFyY2lhPC9G T05UPjwvRElWPgo8RElWPjxGT05UIHNpemU9Mj48QlI+Jm5ic3A7PC9ESVY+PC9GT05UPjwvQk9E WT48L0hUTUw+Cg== --PopOver-2.0.150-962827727-1 Content-Type: application/octet-stream; name="Mariano Eugenio Barcia.vcf"; x-unix-mode=0644 Content-Transfer-Encoding: base64 Content-ID: <0007051308.AA4749616@jness> Content-Disposition: attachment; filename="Mariano Eugenio Barcia.vcf" QkVHSU46VkNBUkQKVkVSU0lPTjoyLjEKTjpCYXJjaWE7TWFyaWFubztFdWdlbmlvCkZOOk1hcmlh bm8gRXVnZW5pbyBCYXJjaWEKT1JHOlRla25vbGFuZCBydHQ7SVQKVElUTEU6SVQgQ29uc3VsdGFu dApURUw7V09SSztWT0lDRTo0MzQ1MzMwMCBpbnQgMjA4ClRFTDtDRUxMO1ZPSUNFOjQ1NTAyODY3 CkFEUjtXT1JLOjs7QXYgQSBNIGRlIEp1c3RvIDg3MiAyUCAxMjtCdWVub3MgQWlyZXM7QkE7MTEw NztBUgpMQUJFTDtXT1JLO0VOQ09ESU5HPVFVT1RFRC1QUklOVEFCTEU6QXYgQSBNIGRlIEp1c3Rv IDg3MiAyUCAxMj0wRD0wQUJ1ZW5vcyBBaXJlcywgQkEgMTEwNz0wRD0wQUFSClgtV0FCLUdFTkRF UjoyCkJEQVk6MTk3MzA1MTUKRU1BSUw7UFJFRjtJTlRFUk5FVDpNYXJpYW5vLkJhcmNpYUB0ZWtu b2xhbmQuY29tCkVNQUlMO0lOVEVSTkVUOm1iYXJjaWFAeWFob28uY29tClJFVjoyMDAwMDcwNVQx NDM5MDVaCkVORDpWQ0FSRAo= --PopOver-2.0.150-962827727-1-- --PopOver-2.0.150-962827727-2-- From pmaric at codestorm.com Wed Jul 5 14:14:27 2000 From: pmaric at codestorm.com (Pero Maric) Date: Wed Jul 5 13:14:27 2000 Subject: Scheduling fix for 4.5 in Java Message-ID: <39639804.CB10CA7A@codestorm.com> Greetings, I have discovered a fix for 4.5 scheduling in Obj-C, (Archive) but I haven't the faintest idea on how to apply this fix to java. If anyone has successfully implemented this fix in java, then I would be more than pleased if he/she would share it with the newsgroup. M.T.I.A - Pero From brian at fortnocs.com Wed Jul 5 14:19:41 2000 From: brian at fortnocs.com (Brian Wotring) Date: Wed Jul 5 13:19:41 2000 Subject: Monitor not working Message-ID: <3.0.6.32.20000705132857.01352c20@mailhost.fortnocs.com> Monitor ( or any other WO app ) will not respond through the normal means: http://host.domain/scirpts/WebObjects.dll/app but will respond by connecting to it directly on the port it's running on. When I point a browser to port 1085, I can see: XMLConfigDoc component: and in my siteconf file, I see my applications registered with wotaskd, so I figure wotaskd is working correctly. When I connect directly to the adaptor, I get a response, but there are no applications listed. Setup: Dual proc PIII-500 w/ 2x9GB UW disks, and 512MB RAM. NT Certified HP NetServer. Windows NT 4.0 SP6a, IIS 4.0 w/ recent hotfixes. WebObjects 4.5 with deployment license. Any suggestions? | Brian Wotring ( brian@fortnocs.com ) | Fort Nocs, Inc. | PGP Key ID: 0x9674763D From pierce at twinforces.com Wed Jul 5 14:46:54 2000 From: pierce at twinforces.com (Pierce T. Wetter III) Date: Wed Jul 5 13:46:54 2000 Subject: Monitor not working In-Reply-To: <3.0.6.32.20000705132857.01352c20@mailhost.fortnocs.com> Message-ID: on 7/5/00 1:28 PM, Brian Wotring at brian@fortnocs.com wrote: > > Monitor ( or any other WO app ) will not respond through the normal means: > > http://host.domain/scirpts/WebObjects.dll/app > > but will respond by connecting to it directly on the port it's running on. > When I point a browser to port 1085, I can see: > > XMLConfigDoc component: > > > > > > > > > > > > > and in my siteconf file, I see my applications registered with wotaskd, so > I figure wotaskd is working correctly. When I connect directly to the > adaptor, I get a response, but there are no applications listed. What does http://host.domain/scrirpts/WebObjects.dll/xyzzy say? Pierce From j-rochkind at nwu.edu Wed Jul 5 14:52:16 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Wed Jul 5 13:52:16 2000 Subject: techniques for logging out? Message-ID: <4.2.2.20000705155259.023f74e8@hecky.acns.nwu.edu> The user clicks on a 'logout' button. I want to deallocate their session and return some nice neutral component to them that doesn't cause a new session to be allocated (or cause their session that I told to terminate to stick around!). Are there any tricks to doing this? Do I need to use direct actions at all? What's up? --Jonathan From brian at fortnocs.com Wed Jul 5 14:53:38 2000 From: brian at fortnocs.com (Brian Wotring) Date: Wed Jul 5 13:53:38 2000 Subject: Monitor not working In-Reply-To: References: <3.0.6.32.20000705132857.01352c20@mailhost.fortnocs.com> Message-ID: <3.0.6.32.20000705140247.01352c20@mailhost.fortnocs.com> > What does > > http://host.domain/scrirpts/WebObjects.dll/xyzzy say? Server Adaptor: Server = IIS WebObjects Server Adaptor version = 4.5 WebObjects Configuration URI(s) = C:/TEMP//WebObjects.xml next(-962830342) Load balancing algorithms = (random, roundrobin, loadaverage) Transports = (winsock, socket, nbsocket) Available applications: -NONE- Request headers: AUTH_TYPE: GATEWAY_INTERFACE: CGI/1.1 HTTP_ACCEPT_LANGUAGE: en-us HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) HTTPS: off HTTPS_KEYSIZE: HTTPS_SECRETKEYSIZE: PATH_INFO: /xyzzy PATH_TRANSLATED: C:\Inetpub\wwwroot\xyzzy QUERY_STRING: REMOTE_ADDR: 195.97.253.4 REMOTE_HOST: 195.97.253.4 REMOTE_USER: SCRIPT_NAME: /scripts/WebObjects.dll SERVER_NAME: scylla.fortnocs.com SERVER_PORT: 80 SERVER_PROTOCOL: HTTP/1.1 SERVER_SOFTWARE: Microsoft-IIS/4.0 REQUEST_METHOD: GET | Brian Wotring ( brian@fortnocs.com ) | Fort Nocs, Inc. | PGP Key ID: 0x9674763D From rklems at running-start.com Wed Jul 5 15:03:47 2000 From: rklems at running-start.com (Ryan R. Klems) Date: Wed Jul 5 14:03:47 2000 Subject: techniques for logging out? References: <4.2.2.20000705155259.023f74e8@hecky.acns.nwu.edu> Message-ID: <3963A27F.C95E59C0@running-start.com> I've done this in the past by terminating the session and returning a WORedirect... - (WOComponent *) logout { WOComponent *redirect; [[self session] terminate]; redirect = [self pageWithName: @"WORedirect"]; [redirect setURL: ]; return redirect; } Jonathan Rochkind wrote: > > The user clicks on a 'logout' button. I want to deallocate their session > and return some nice neutral component to them that doesn't cause a new > session to be allocated (or cause their session that I told to terminate to > stick around!). > > Are there any tricks to doing this? Do I need to use direct actions at all? > What's up? > > --Jonathan > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects -- Ryan R. Klems Senior Software Engineer Running Start, Inc. (520)-547-4265 rklems@running-start.com http://www.running-start.com From jmiller at ecashtech.com Wed Jul 5 15:10:25 2000 From: jmiller at ecashtech.com (jmiller@ecashtech.com) Date: Wed Jul 5 14:10:25 2000 Subject: techniques for logging out? Message-ID: <6FD4D24264E1D311A29A00508B8BC9C112CDDB@MAIL1> You can return a Logout-component and call session.terminate() within its sleep()-method. J -----Original Message----- From: Jonathan Rochkind [mailto:j-rochkind@nwu.edu] Sent: Wednesday, July 05, 2000 1:54 PM To: webobjects@omnigroup.com Subject: techniques for logging out? The user clicks on a 'logout' button. I want to deallocate their session and return some nice neutral component to them that doesn't cause a new session to be allocated (or cause their session that I told to terminate to stick around!). Are there any tricks to doing this? Do I need to use direct actions at all? What's up? --Jonathan _______________________________________________ WebObjects mailing list WebObjects@omnigroup.com http://www.omnigroup.com/mailman/listinfo/webobjects From pierce at twinforces.com Wed Jul 5 15:10:51 2000 From: pierce at twinforces.com (Pierce T. Wetter III) Date: Wed Jul 5 14:10:51 2000 Subject: Monitor not working In-Reply-To: <3.0.6.32.20000705140247.01352c20@mailhost.fortnocs.com> Message-ID: on 7/5/00 2:02 PM, Brian Wotring at brian@fortnocs.com wrote: > WebObjects Configuration URI(s) = C:/TEMP//WebObjects.xml next(-962830342) That's not pointing at wotaskd, that's pointing at an XML file! (that probably doesn't exist.) Your adaptor configuration is messed up, that's why you can't see apps. I'll let you take it from here, I don't know how to config the IIS adaptor off the top of my head, but setting it to http://localhost:1085 will work for a start. Pierce From j-rochkind at nwu.edu Wed Jul 5 15:18:12 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Wed Jul 5 14:18:12 2000 Subject: "unable to begin a transaction" Message-ID: <4.2.2.20000705161829.023db968@hecky.acns.nwu.edu> With 4.5 and the ODBC adaptor (installed with 4.5), I'm getting the "unable to begin a transaction within a transaction" exception. I haven't yet figured out how to reproduce this, it just shows up from time to time. Has anyone else seen this? It sounds kind of like an adaptor bug, but I just installed 4.5. --Jonathan From dempseyj at apple.com Wed Jul 5 15:18:42 2000 From: dempseyj at apple.com (James Dempsey) Date: Wed Jul 5 14:18:42 2000 Subject: techniques for logging out? In-Reply-To: <4.2.2.20000705155259.023f74e8@hecky.acns.nwu.edu> Message-ID: It should be the case that calling terminate() on the session anywhere within the request-response loop will allow the current request response loop to complete, allowing a component to return one last HTML page to the user. If you wish the last page to be completely outside of the the WebObjects application (a static page not generated by a component) you could use a WORedirect. Note that WORedirect is a subclass of WOComponent, so this is just a specific application of the general idea. Of course, if you wish, you could put a link to the "front door URL" of your application on that last component so users can click to start a new session and "buy more things" or "login again", or whatever. -James -- James Dempsey Apple iServices Training Apple Computer, Inc. dempsey@apple.com (408) 974-7817 > From: Jonathan Rochkind > Date: Wed, 05 Jul 2000 15:54:00 -0500 > To: webobjects@omnigroup.com > Subject: techniques for logging out? > > The user clicks on a 'logout' button. I want to deallocate their session > and return some nice neutral component to them that doesn't cause a new > session to be allocated (or cause their session that I told to terminate to > stick around!). > > Are there any tricks to doing this? Do I need to use direct actions at all? > What's up? > > --Jonathan > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From patrice at mac.com Wed Jul 5 15:19:40 2000 From: patrice at mac.com (Patrice Gautier) Date: Wed Jul 5 14:19:40 2000 Subject: techniques for logging out? In-Reply-To: <3963A27F.C95E59C0@running-start.com> Message-ID: for extra points, use a direct action; this way clicking on 'logout' can never result in 'your session has timed out..' -P > From: "Ryan R. Klems" > Date: Wed, 05 Jul 2000 14:02:55 -0700 > To: Jonathan Rochkind > Cc: webobjects@omnigroup.com > Subject: Re: techniques for logging out? > > I've done this in the past by terminating the session and returning a > WORedirect... > > - (WOComponent *) logout > { > WOComponent *redirect; > > [[self session] terminate]; > redirect = [self pageWithName: @"WORedirect"]; > [redirect setURL: ]; > return redirect; > } > > Jonathan Rochkind wrote: >> >> The user clicks on a 'logout' button. I want to deallocate their session >> and return some nice neutral component to them that doesn't cause a new >> session to be allocated (or cause their session that I told to terminate to >> stick around!). >> >> Are there any tricks to doing this? Do I need to use direct actions at all? >> What's up? >> >> --Jonathan >> >> _______________________________________________ >> WebObjects mailing list >> WebObjects@omnigroup.com >> http://www.omnigroup.com/mailman/listinfo/webobjects > > -- > Ryan R. Klems > Senior Software Engineer > Running Start, Inc. > (520)-547-4265 > rklems@running-start.com > http://www.running-start.com > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From jgrant at mail.ardesic.com Wed Jul 5 15:25:11 2000 From: jgrant at mail.ardesic.com (Jeff Grant) Date: Wed Jul 5 14:25:11 2000 Subject: Strange behaviour - wonder what I did? Message-ID: Hey everyone; Well, I've really done it this time. Does anyone out there understand what's happening when the browser's refresh button is being pressed? In my app (which works fine otherwise), if a user presses that button, it returns a specific page, which is NOT the page they were on (unless of course they are on that given page) Which is a WOComponent, but not Main. I've checked all my actions that return that page (no luck). I'm assuming this is a NavBar/Template kind of thing, but what could I have done? Is there some sort of default behaviour that I may have set/not set? Any suggestions would be greatly appreciated. Jeff Grant From michael at stb.nccom.com Wed Jul 5 15:36:57 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Wed Jul 5 14:36:57 2000 Subject: EOKeyBinding warning - regarding capitalized key References: Message-ID: <3963AA39.74FF745C@getasia.com> mmalcolm crawford wrote: > > Michael Gersten wrote: > > > And now this argument falls apart. If I know that lowercase means > > method, and uppercase means variable, then I can see the sense in what > > you are saying. > > > The whole point is that it shouldn't matter if the "variable" is a real ivar > or a method. And convention states that the class name should start with a > capital letter, so that doesn't leave many options for variables... Again, I miss the point. If the convention is that uppercase is class name, and the key/value protocol code says "I know this is a class name, not a variable or method", then the code can't do anything -- keyvalue isn't defined for operation on a class. It does operations on an instance. > > Again, what is wrong with saying > > [...] > > d1 = [myFoo valueForKey: @"IDFoo"]; > > > What happens if you have both an ivar IDFoo, and accessor methods > [get]IDFoo() and setIDFoo()? Is KVC supposed to guess that the accessor > methods actually access IDFoo, or might there be another variable iDFoo? > (Try it in WOBuilder and see what happens.) Well, since it's valueForKey, it first uses getIDFoo(). If not found, it uses ID Oh, I see. The key/value code doesn't know if it should look for a variable named "IDFoo" or "iDFoo". So your concern, and the apparent reason that it doesn't work, is that instead of making two passes through the variables, one looking for iDFoo, and one looking for IDFoo (and caching the result so that next time it is fast), it only makes one pass, and then aborts when not found. Hmm. If that is the case, then Apple should document it as "Uppercase names will not work without explicit accessor methods; ivars are not found", rather than "This will print a warning message". Michael From lux at umich.edu Wed Jul 5 15:44:39 2000 From: lux at umich.edu (Joshua 'Tool User' Marker) Date: Wed Jul 5 14:44:39 2000 Subject: Versioning with frameworks Message-ID: I'm trying to implement multiple versions of our frameworks with java wrappers and a wo app (and a partridge in a pear tree). I have Framework F, java, wrapped around Framework/Lib L, Obj C. These install into Frameworks/F/Versions/A and lib_lA.o or whatever. This works handily, though Apple's make system clobbers old versions so I have to move them in by hand. (or, 'by script' anyway.) However, 'Current' always gets set, no matter how I set the install make files. I have a set of scripts that toggle 'current' to point to A or B versions and this works great, I can _build_ fine. The problem is that at run time, my apps look not at the version they were built with, but at the version _then_ pointed to by the symbolic link 'current'. This sucks. Further, if I remove the 'current' symlink (which shouldn't matter - after all, they're building against the version I specify, not 'Current') - I can't generate the classpath properly on my java frameworks. Any suggestions for what to do here? --- Joshua * San Francisco: 415 / 505.9406 (37.753083N -122.430501W) Future site of beautiful San Andreas Canyon! You live longer once you realize that any time spent being unhappy is wasted. -- Ruth E. Renkl --- From j-rochkind at nwu.edu Wed Jul 5 15:47:37 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Wed Jul 5 14:47:37 2000 Subject: EOKeyBinding warning - regarding capitalized key In-Reply-To: <3963AA39.74FF745C@getasia.com> References: Message-ID: <4.2.2.20000705164442.023f82d8@hecky.acns.nwu.edu> I actually HAVE experienced instability with upper case keys and key value coding. I don't know why---apparently, key value coding uses some algorithm we haven't yet guessed for reasons we dont' understand which actually DOES result in crashes. I used to do WORedirect redirect; redirect.takeValueForKey("http:/adfd", "URL"); This is even one of Apple's own reusable components, and it is even documented to have a key named "URL". Since it's API isn't documented beyond binding keys, I thought this was the best way to deal with it. However, my application actually was crashing right at this point for reasons that appeared to be due to the capital-U key. Not predictably every time, even more odd, but just sometimes. Changing it to the undocumented redirect.setURL("http://adfadf"); got rid of the crashes. So, Apple's run time warning which warns that capital-letter keys may lead to infinite loops and other instability should apparently be taken at it's word. It may lead to such things. WHY, I have no idea. I don't understand what the big problem with uppercase keys would be either. Those of you who apparently find this an engrossing issue are free to continue to speculate on that. --Jonathan At 04:35 PM 7/5/2000 -0500, you wrote: >mmalcolm crawford wrote: > > > > Michael Gersten wrote: > > > > > And now this argument falls apart. If I know that lowercase means > > > method, and uppercase means variable, then I can see the sense in what > > > you are saying. > > > > > The whole point is that it shouldn't matter if the "variable" is a real > ivar > > or a method. And convention states that the class name should start with a > > capital letter, so that doesn't leave many options for variables... > >Again, I miss the point. If the convention is that uppercase is class >name, and >the key/value protocol code says "I know this is a class name, not a >variable or >method", then the code can't do anything -- keyvalue isn't defined for >operation >on a class. It does operations on an instance. > > > > Again, what is wrong with saying > > > [...] > > > d1 = [myFoo valueForKey: @"IDFoo"]; > > > > > What happens if you have both an ivar IDFoo, and accessor methods > > [get]IDFoo() and setIDFoo()? Is KVC supposed to guess that the accessor > > methods actually access IDFoo, or might there be another variable iDFoo? > > (Try it in WOBuilder and see what happens.) > >Well, since it's valueForKey, it first uses getIDFoo(). If not found, it >uses ID > >Oh, I see. > >The key/value code doesn't know if it should look for a variable named "IDFoo" >or "iDFoo". > >So your concern, and the apparent reason that it doesn't work, is that instead >of making two >passes through the variables, one looking for iDFoo, and one looking for IDFoo >(and caching the result so that next time it is fast), it only makes one pass, >and then aborts when not found. > >Hmm. > >If that is the case, then Apple should document it as "Uppercase names >will not >work without explicit accessor methods; ivars are not found", rather than >"This >will print a warning message". > >Michael >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From ed at leafe.com Wed Jul 5 15:51:22 2000 From: ed at leafe.com (Ed Leafe) Date: Wed Jul 5 14:51:22 2000 Subject: EOKeyBinding warning - regarding capitalized key Message-ID: On 7/5/2000 5:35 PM, Michael Gersten supposedly said: >Well, since it's valueForKey, it first uses getIDFoo(). If not found, it >uses ID > >Oh, I see. > >The key/value code doesn't know if it should look for a variable named >"IDFoo" >or "iDFoo". > >So your concern, and the apparent reason that it doesn't work, is that >instead >of making two >passes through the variables, one looking for iDFoo, and one looking for >IDFoo >(and caching the result so that next time it is fast), it only makes one >pass, >and then aborts when not found. What if you have two ivars, one named iDFoo, and one named IDFoo. For that matter, let's say you have others named IDFOO, idfoo, IdFoO, etc. Which do you pick? Sure, no one in their right mind would do such a thing, but it certainly is allowable by the language. I don't think your multiple pass alternative is viable. The only alternative to enforcing a naming convention is to provide no ability to resolve accessor methods. ___/ / __/ / ____/ Ed Leafe http://leafe.com/ From bbum at codefab.com Wed Jul 5 16:17:18 2000 From: bbum at codefab.com (Bill Bumgarner) Date: Wed Jul 5 15:17:18 2000 Subject: Multiple framework versions? Message-ID: <200007052217.e65MH9d25883@bjork.codefab.com> WO 4.5 changes the way frameworks "executables" are handled. In particular, the dylibs are no longer found in the framework. Instead, they are found somewhere on LD_LIBRARY_PATH -- typically, /opt/Apple/Library/Executables or /opt/Apple/Local/Library/Executables. Basically, 4.5 fixes the static path problem in the linker-- that is, when something is linked, it no longer sticks the absolute path to the dylib into the executable. This allows the dylibs to be moved around at will [as long as you update the environment variables correctly]. Example: Under WO 4.5, ldd of Monitor yields: libXML.so.A => /opt/Apple/Library/Executables/libXML.so.A libMonitor.so.A => /opt/Apple/Library/Executables/libMonitor.so.A libWOExtensions.so.A => /opt/Apple/Library/Executables/libWOExtensions.so.A libWebObjects.so.A => /opt/Apple/Library/Executables/libWebObjects.so.A libEOAccess.so.B => /opt/Apple/Library/Executables/libEOAccess.so.B libEOControl.so.B => /opt/Apple/Library/Executables/libEOControl.so.B libFoundation.so.C => /opt/Apple/Library/Executables/libFoundation.so.C libMultiScript.so.A => /opt/Apple/Library/Executables/libMultiScript.so.A libpdo.so => /opt/Apple/Library/Executables/libpdo.so libnsl.so.1 => /lib/libnsl.so.1 libthread.so.1 => /lib/libthread.so.1 libsocket.so.1 => /lib/libsocket.so.1 libc.so.1 => /lib/libc.so.1 libm.so.1 => /lib/libm.so.1 libdl.so.1 => /lib/libdl.so.1 libmp.so.2 => /lib/libmp.so.2 /usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1 Under WO 4.0, it yields: /opt/Apple/Library/PrivateFrameworks/Monitor.framework/Versions/A/Monitor /opt/Apple/Library/Frameworks/WOExtensions.framework/Versions/A/WOExtensions /opt/Apple/Library/Frameworks/WebObjects.framework/Versions/A/WebObjects /opt/Apple/Library/Frameworks/EOAccess.framework/Versions/B/EOAccess /opt/Apple/Library/Frameworks/EOControl.framework/Versions/B/EOControl /opt/Apple/Library/Frameworks/Foundation.framework/Versions/C/Foundation /opt/Apple/Library/PrivateFrameworks/MultiScript.framework/Versions/A/MultiScript libpdo.so => /usr/lib/libpdo.so libnsl.so.1 => /usr/lib/libnsl.so.1 libthread.so.1 => /usr/lib/libthread.so.1 libsocket.so.1 => /usr/lib/libsocket.so.1 libc.so.1 => /usr/lib/libc.so.1 libm.so.1 => /usr/lib/libm.so.1 libdl.so.1 => /usr/lib/libdl.so.1 libmp.so.2 => /usr/lib/libmp.so.2 The 4.5 output basically indicates that Monitor requires a dylib named libWebObjects.so.A-- the dyanmic linker found said dylib at /opt/Apple/Library/Executables/libWebObjects.so.A. The 4.0 output indicates that the Monitor was linked against a dylib that MUST be found at /opt/Apple/Library/Frameworks/WebObjects.framework/Versions/A/WebObjects. So, under 4.0, simply changing the framework search path and rebuilding the project would yield a viable binary regardless of where the frameworks were installed, but with the stipulation that the frameworks *cannot be moved*. Under 4.5, you must change LD_LIBRARY_PATH to reflect where the symbolic link to the framework binary is-- i.e. where the symbolic link is typically installed. b.bum From dneumann at apple.com Wed Jul 5 16:30:52 2000 From: dneumann at apple.com (David Neumann) Date: Wed Jul 5 15:30:52 2000 Subject: Bar charts, pie charts, etc. Message-ID: <200007052230.PAA14626@scv1.apple.com> On the server there is always the Plot.framework, the example is in script but that shouldn't stop you from using it. It gens GIFs. Also a cool charting technology from Corda that can emit flash for interesting looking and yet low bandwidth stuff. Pat Homelvig from http://www.whitewolf.com created a framework to make using Corda's stuff much easier from within a WOApp. d ---------- >From: "Schneider, Eric" >To: webobjects@omnigroup.com >Subject: Bar charts, pie charts, etc. >Date: Wed, Jul 5, 2000, 9:27 AM > > Howdy, > > I'm working on a project that will require dynamic charts.........for > example a bar chart that shows the effect of inflation over 30 > years......real exciting stuff. > > Has anyone come across any nifty tools that does this and works well with > WO? Someone had mentioned JChart....had anyone used that? Suggestions > would be greatly appreciated. > > Thanks, > Eric. > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From bmarquis at ogse.com Wed Jul 5 16:32:43 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Wed Jul 5 15:32:43 2000 Subject: Date -> NSGregorianDate Message-ID: This is easier: NSGregorianDate date = new NSGregorianDate(javaDate.getTime()); ----------------------------------- Brian Marquis Internet Programmer Orion Group Software Engineers 219-233-3401 Fax: 219-239-3348 http://www.ogse.com mailto:bmarquis@ogse.com ----------------------------------- > -----Original Message----- > From: Paul R. Summermatter [SMTP:paulrs@lgs-systems.com] > Sent: Tuesday, July 04, 2000 7:44 AM > To: 'Brian Wotring' > Cc: 'webobjects@omnigroup.com' > Subject: RE: Date -> NSGregorianDate > > Brian, > > A com.apple.client.foundation.NSGregorianDate or a > com.apple.yellow.foundation.NSGregorianDate? If the latter, you ought to > be > able to do something like: > > NSGregorianDate date = new NSGregorianDate(javaDate.getYear(), > javaDate.getMonth(), javaDate.getDay(), javaDate.getMinute(), > javaDate.getSecond(), new NSTimeZone(javaDate.getTimezoneOffset())); > > (NB. I have not tested this code and there may be differences in > java.util.Date's returning values in seconds/milliseconds and > NSGregorianDate expecting arguments in seconds/milliseconds) > > If it's the former, NSGregorianDate is just a wrapper around a > java.util.Date, so conversion is trivial. > > Regards, > Paul > > [ -----Original Message----- > [ From: Brian Wotring [mailto:brian@fortnocs.com] > [ Sent: Monday, July 03, 2000 10:59 PM > [ To: webobjects@omnigroup.com > [ Subject: Date -> NSGregorianDate > [ > [ > [ > [ I have a Java class that has no WO code at all in it and I > [ need to convert > [ it's date() member and convert it into an NSGregorianDate object. > [ > [ Suggesstions? > [ > [ > [ > [ | Brian Wotring ( brian@fortnocs.com ) > [ | Fort Nocs, Inc. > [ | PGP Key ID: 0x9674763D > [ _______________________________________________ > [ WebObjects mailing list > [ WebObjects@omnigroup.com > [ http://www.omnigroup.com/mailman/listinfo/webobjects > [ > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From brian at fortnocs.com Wed Jul 5 16:43:56 2000 From: brian at fortnocs.com (Brian Wotring) Date: Wed Jul 5 15:43:56 2000 Subject: EONullValue Message-ID: <3.0.6.32.20000705155312.01352c20@mailhost.fortnocs.com> When creating a qualifier like: EOQualifier q = EOQualifier.qualifierWithQualifierFormat( "some_int_field = .... how is a null value specified so that the qualifier only allows fields with that key having a null value ? | Brian Wotring ( brian@fortnocs.com ) | Fort Nocs, Inc. | PGP Key ID: 0x9674763D From rklems at running-start.com Wed Jul 5 16:49:46 2000 From: rklems at running-start.com (Ryan R. Klems) Date: Wed Jul 5 15:49:46 2000 Subject: EONullValue References: <3.0.6.32.20000705155312.01352c20@mailhost.fortnocs.com> Message-ID: <3963BB58.B06C5570@running-start.com> Well, in ObjC you do "xxx = nil" and I would assume its the same in java, but it may be "xxx = null" -Ryan Brian Wotring wrote: > > When creating a qualifier like: > > EOQualifier q = EOQualifier.qualifierWithQualifierFormat( "some_int_field = > .... > > how is a null value specified so that the qualifier only allows fields with > that key having a null value ? > > | Brian Wotring ( brian@fortnocs.com ) > | Fort Nocs, Inc. > | PGP Key ID: 0x9674763D > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects -- Ryan R. Klems Senior Software Engineer Running Start, Inc. (520)-547-4265 rklems@running-start.com http://www.running-start.com From brian at fortnocs.com Wed Jul 5 16:53:26 2000 From: brian at fortnocs.com (Brian Wotring) Date: Wed Jul 5 15:53:26 2000 Subject: EONullValue In-Reply-To: <3963BB58.B06C5570@running-start.com> References: <3.0.6.32.20000705155312.01352c20@mailhost.fortnocs.com> Message-ID: <3.0.6.32.20000705160225.01352c20@mailhost.fortnocs.com> >Well, in ObjC you do "xxx = nil" and I would assume its the same in >java, but it may be "xxx = null" Well, that was my first guess, though, it did not work, says 'null' isn't a valid key. | Brian Wotring ( brian@fortnocs.com ) | Fort Nocs, Inc. | PGP Key ID: 0x9674763D From joshua at medicalhost.com Wed Jul 5 16:54:06 2000 From: joshua at medicalhost.com (Tool User) Date: Wed Jul 5 15:54:06 2000 Subject: NSGregorianDate gregorianUnitsSinceDate() problem in Java In-Reply-To: <200007031453.QAA10870@mindseal.comm2000.it> Message-ID: <0007051553.AA436002@yak> > I compute the difference between two dates in days with these lines > of code: > > > NSGregorianDate myStartDate // assume this exists > NSGregorianDate myStopDate // assume this exists > > method hangs and, after a bit, the MacOSX starts swapping, as it was > recursively calling > something. If you watch the objects being created and GCed there (say, by turning off GC. . . . ;-) ) you'll see that this method sometimes fails to return! True story. I've filed a bug on this. I ended up doing it myself, the tacky way - creating lots of intermediate objects in a tight memory loop. (As it turns, this is how Apple does it, too, apparently.) From dneumann at apple.com Wed Jul 5 17:51:11 2000 From: dneumann at apple.com (David Neumann) Date: Wed Jul 5 16:51:11 2000 Subject: AW: Two Apps - one Database -> Syncronization? Message-ID: <200007052350.QAA28320@scv1.apple.com> If you want the latest destination objects, then you want to refault the EO, that will force the rels on that EO to become faults and reconstitute themselves. Note that I had thought that the EOF in 4.5 would do a attribute refresh on not just the the root object fetched but all related objects in all relationships specified in the array you pass to the fetch spec with setPrefetchingRelatonshipKeyPaths ... this is an array of strings. The strings are relationship names. Mainly intended to allow for custom deep fetching down relationships. For example consider fetching Movies... You want not only the movie table info, but you KNOW you also want the Studio AND the Actors of the Movies. The hints on such a fetch might be: ("studio", "actors") Now in 4.0 if the refreshes flag were on, this would only refresh previously fetched Movie objects; snapshot data would be used to populate the studios and actors fetched. 4.5 should use the latest values from the database instead. The hints give you an ability to basically invalidate and refresh a wedge in the object graph. d PS: Note that the isDeep thing on a fetch spec referes to fetching root objects in terms of *inheritence* not compositional relations (which is the norm). For example... LaserDiscs and VideoTape both inherit from MovieMedia. So when you fetch MovieMedias, do you just get MovieMedias, or do you also get LaserDiscs and VideoTape. isDeep says got get me all of them. d ---------- >From: Daniel Bleisteiner >To: WebObjects >Subject: AW: Two Apps - one Database -> Syncronization? >Date: Wed, Jul 5, 2000, 10:34 AM > > We mostly use relations to get objects and therefore i'm not sure where to > look for the actual fetchspec. We tried to set this on the fetchspec of an > early displaygroup we use to get one initial object. We also used isDeep to > refetch all connected objects but it didn't work. > > How exactly should we set the fetchspec this way? > > Oliver Fox, Daniel Bleisteiner, MetaObject GmbH > - > Oranienburger Strasse 69, 10117 Berlin > Tel: +49-30-285381-10, Fax: +49-30-285381-99 > > > -----Ursprungliche Nachricht----- > Von: webobjects-admin@omnigroup.com > [mailto:webobjects-admin@omnigroup.com]Im Auftrag von Geoff Hopson > Gesendet: Dienstag, 4. Juli 2000 20:47 > An: Daniel Bleisteiner > Cc: WebObjects > Betreff: Re: Two Apps - one Database -> Syncronization? > > > The following method on EOFetchSpecification works well for us in the > same situation: > > - (void)setRefreshesRefetchedObjects:(BOOL)refreshesRefetchedObjects; > > Set it to YES, and the fetch spec will ignore the snapshot and fetch > your objects directly from the database. > > Hope this helps, > Geoff > > Daniel Bleisteiner wrote: >> >> Hi, >> >> i just have two different applications running the same database - a >> storefront and the backoffice of a shop. Is it possible to tell the >> storefront to refetch all changed objects from the database on >> session-start? >> >> At this point we need to restart the storefront everytime the backoffice >> changed objects. >> >> Daniel Bleisteiner, MetaObject GmbH >> - >> Oranienburger Strasse 69, 10117 Berlin >> Tel: +49-30-285381-10, Fax: +49-30-285381-99 >> >> _______________________________________________ >> WebObjects mailing list >> WebObjects@omnigroup.com >> http://www.omnigroup.com/mailman/listinfo/webobjects > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From michael at stb.nccom.com Wed Jul 5 17:53:54 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Wed Jul 5 16:53:54 2000 Subject: EOKeyBinding warning - regarding capitalized key References: Message-ID: <3963CA50.4A2DAE63@getasia.com> > >So your concern, and the apparent reason that it doesn't work, is that > >instead > >of making two > >passes through the variables, one looking for iDFoo, and one looking for > >IDFoo > >(and caching the result so that next time it is fast), it only makes one > >pass, > >and then aborts when not found. > > What if you have two ivars, one named iDFoo, and one named IDFoo. > For that matter, let's say you have others named IDFOO, idfoo, IdFoO, > etc. Which do you pick? Sure, no one in their right mind would do such a > thing, but it certainly is allowable by the language. Simple: Only 'IDFoo' will be used by [obj valueForKey: @"IDFoo"] The only time it ever becomes an issue is that both "IDFoo" and "iDFoo" will have the same "setIDFoo" accessor. Remember, a method named "setIDFoo" knows what it will set; the only ambiguity is that two different variables have the same name for custom set accessors. I was mistaken when I said earlier that this would be the problem. It isn't. When it looks for, and does not find setIDFoo:, it still has the original passed string, @"IDFoo", so it has no ambiguity for what ivar to use. It has a known method name to look for, a known ivar name, etc. So we are back to the question: why not allow it? At the very least, if it worked before, why not allow it to keep on working now? From dempseyj at apple.com Wed Jul 5 17:57:45 2000 From: dempseyj at apple.com (James Dempsey) Date: Wed Jul 5 16:57:45 2000 Subject: EONullValue In-Reply-To: <3.0.6.32.20000705160225.01352c20@mailhost.fortnocs.com> Message-ID: In Java do something like this: // build an array with object arguments for your qualifier string // In this case one argument the EONullValue object NSArray qualifierArgs = new NSArray(EONullValue.nullValue()); // Build a qualifier just like usual using qualifier with qualifier format EOQualifier q = EOQualifier.qualifierWithQualifierFormat ( "some_int_field = %@", qualifierArgs); That should cover it for you. -James -- James Dempsey Apple iServices Training Apple Computer, Inc. dempsey@apple.com (408) 974-7817 > From: Brian Wotring > Date: Wed, 05 Jul 2000 16:02:25 -0700 > To: "Ryan R. Klems" > Cc: webobjects@omnigroup.com > Subject: Re: EONullValue > > >> Well, in ObjC you do "xxx = nil" and I would assume its the same in >> java, but it may be "xxx = null" > > Well, that was my first guess, though, it did not work, says 'null' isn't a > valid key. > > > > | Brian Wotring ( brian@fortnocs.com ) > | Fort Nocs, Inc. > | PGP Key ID: 0x9674763D > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From dneumann at apple.com Wed Jul 5 18:08:30 2000 From: dneumann at apple.com (David Neumann) Date: Wed Jul 5 17:08:30 2000 Subject: unableToSetNilForKey Message-ID: <200007060008.RAA01390@scv1.apple.com> Actaully in Java you want to override and call super on a different method... since nil is an ObjC thing, null was used here in the name. I suppose it was a tradeoff of one kind of consistency for another: public void unableToSetNullForKey(String keyname) { ---------- >From: "Brian P. Marquis" >To: "Multiple recipients of list (E-mail)" >Subject: unableToSetNilForKey >Date: Wed, Jul 5, 2000, 2:04 PM > > I need to be able to override unableToSetNilForKey, but I want the default > behavoir for the fields I'm not checking. I tried > super.unableToSetNilForKey( keyname ); but that method doesn't exist in > EOCustomObject. > > public void unableToSetNilForKey(String keyname) { > if ( keyname.equals("qty") ) { > qty = 0; > } else { > // not sure what goes here > } > } > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From hoffhines at apple.com Wed Jul 5 18:23:59 2000 From: hoffhines at apple.com (Michael Hoffhines) Date: Wed Jul 5 17:23:59 2000 Subject: Bar charts, pie charts, etc. Message-ID: <002501bfe6e0$693ef660$c622c511@apple.com> This is a multi-part message in MIME format. ------=_NextPart_000_0021_01BFE6A5.BCBFEC30 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0022_01BFE6A5.BCBFEC30" ------=_NextPart_001_0022_01BFE6A5.BCBFEC30 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable ReportMill works well with WO and generates charts and flash=20 in addition to pdf. Free demo download at http://www.reportmill.com >From: "Schneider, Eric" >Subject: Bar charts, pie charts, etc. > Howdy, > > I'm working on a project that will require dynamic charts.........for > example a bar chart that shows the effect of inflation over 30 > years......real exciting stuff. ------=_NextPart_001_0022_01BFE6A5.BCBFEC30 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
ReportMill works well with WO and generates charts = and flash=20
in addition to pdf. Free demo download at http://www.reportmill.com
 
>From: "Schneider, Eric" <ESchneider@tiaa-cref.org>=
>Subject:=20 Bar charts, pie charts, etc.
 
> Howdy,
>
> I'm working on a project = that will=20 require dynamic charts.........for
> example a bar chart that = shows the=20 effect of inflation over 30
> years......real exciting=20 stuff.
 
------=_NextPart_001_0022_01BFE6A5.BCBFEC30-- ------=_NextPart_000_0021_01BFE6A5.BCBFEC30 Content-Type: text/x-vcard; name="Michael A. Hoffhines.vcf" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="Michael A. Hoffhines.vcf" BEGIN:VCARD VERSION:2.1 N:Hoffhines;Michael;A. FN:Michael A. Hoffhines NICKNAME:Mike ORG:Apple Computer, Inc. TITLE:Developer Trainer TEL;WORK;VOICE:408 974 2889 TEL;WORK;FAX:408 974 3612 ADR;WORK:;;1 Infinite Loop MS: 38-ET;Cupertino;CA;95014;USA LABEL;WORK;ENCODING=3DQUOTED-PRINTABLE:1 Infinite Loop MS: = 38-ET=3D0D=3D0ACupertino, CA 95014=3D0D=3D0AUSA ADR;HOME:;;1658 Nord Lane;San Jose;CA;95125;USA LABEL;HOME;ENCODING=3DQUOTED-PRINTABLE:1658 Nord Lane=3D0D=3D0ASan Jose, = CA 95125=3D0D=3D0AUSA X-WAB-GENDER:2 EMAIL;PREF;INTERNET:hoffhines@apple.com REV:20000706T002330Z END:VCARD ------=_NextPart_000_0021_01BFE6A5.BCBFEC30-- From brian at fortnocs.com Wed Jul 5 18:31:36 2000 From: brian at fortnocs.com (Brian Wotring) Date: Wed Jul 5 17:31:36 2000 Subject: Monitor not working In-Reply-To: <200007060021.RAA03333@scv1.apple.com> Message-ID: <3.0.6.32.20000705174051.01352c20@mailhost.fortnocs.com> >what do you see when you look at this in the browser: >http://localhost:1085 ? >If you see your app listed then it is the adaptor being unable to get info >from wotaskd. Yep, that's my problem. >For the ISAPI adaptor there is a registry entry documented in >the Deployment Docs you might want to edit to point at your wotaskd. If >CGI, then there is a similarly named env variable to fill out. I have read the docs, and they speak of a registry entry CONF_URL which seems to make no difference at all. | Brian Wotring ( brian@fortnocs.com ) | Fort Nocs, Inc. | PGP Key ID: 0x9674763D From brian at fortnocs.com Wed Jul 5 18:59:44 2000 From: brian at fortnocs.com (Brian Wotring) Date: Wed Jul 5 17:59:44 2000 Subject: Monitor not working In-Reply-To: <200007060046.RAA25512@scv3.apple.com> Message-ID: <3.0.6.32.20000705180902.01352c20@mailhost.fortnocs.com> At 07:45 PM 7/5/2000 -0500, you wrote: >Did you create your CONF_URL entry beneath HKEY_LOCAL_MACHINE? >In Apple/WebObjects/Configuration? >Of type REG_SZ? >With a value of: "http://localhost:1085"? >Then restart IIS? Yes, that works, thanks all. | Brian Wotring ( brian@fortnocs.com ) | Fort Nocs, Inc. | PGP Key ID: 0x9674763D From brian at fortnocs.com Wed Jul 5 19:20:01 2000 From: brian at fortnocs.com (Brian Wotring) Date: Wed Jul 5 18:20:01 2000 Subject: headers Message-ID: <3.0.6.32.20000705182920.012f6af0@mailhost.fortnocs.com> Hopefully somebody can help me with this. I have been unable to allow custom headers into a WO app deployed on an NT box, using the IIS adaptor. I've modified the httpheaders.h and added "myheader", to the http_headers[] array. Compiled the adaptor, and placed the new WebObjects.dll in the /scripts directory, and rebooted the box. Is this the only steps necessary to allow a header, "myheader" for example, through to the application? When I print out the headers dictionary, I do not see the header coming through when sent. In addition, I have tried adding "HTTP_myheader" to the array. Same result. Any help will be appreciated, thanks. | Brian Wotring ( brian@fortnocs.com ) | Fort Nocs, Inc. | PGP Key ID: 0x9674763D From stuart at selenium.com.au Wed Jul 5 22:20:03 2000 From: stuart at selenium.com.au (Stuart Parker) Date: Wed Jul 5 21:20:03 2000 Subject: WOMail can't determine IP error message Message-ID: <200007060419.OAA01572@dev3.selenium.com.au> Hi there, I've just implemented WOMail in one of apps. It worked fine until we threw the system behind a firewall, and now it gives a "Can't determine IP address of host:" message. I can do a nslookup of the host name and get a response, so I think that WOMail uses a different mechanism to determine an ip address from a dns name. Would anyone have an idea of how it does this? I've tried using the IP address instead of the domain name, but it can't convert an ip address (as string) into an ip address. Thanks, Stuart Parker Selenium Interactive From ehermanson at gofish.com Wed Jul 5 23:08:41 2000 From: ehermanson at gofish.com (Eric Hermanson) Date: Wed Jul 5 22:08:41 2000 Subject: Workaround for Annoying ProjectBuilder Definition Search Bug? References: Message-ID: <01d601bfe707$d37fab10$93941f18@quark> ----- Original Message ----- From: "Ray Schnitzler" > In our experience, it seems that this happens when you start a definition > search by clicking the button. Searching by hitting doesn't cause > the problem. That's not my experience. For me, the find panel eventually gets 'hosed' regardless of whether I use the button or just hit return to initiate "Definition" search. I'm using a 500 Mhz G4, WO4.5, mainly searching Obj-C. Maybe it works for Java files, and not Obj-C, and that's why I'm seeing the problems while others are not? - Eric From leon at drakeassociates.com Wed Jul 5 23:17:50 2000 From: leon at drakeassociates.com (Leon Amdour) Date: Wed Jul 5 22:17:50 2000 Subject: Cascade delete Message-ID: <4.3.2.7.1.20000705221442.00b09c80@drakeassociates.com> Hi, all. It seems that cascade delete doesn't work the way I expected it to. I have an optional one-to-many relationship betwen two tables. Main table owns destination. When I delete record in the main table records in destination don't get deleted (it does work for a one-to-one mandatory relationship). Could I be doing something wrong, or doesn't cascade work for optional relationships? Thanks. Leon From dneumann at apple.com Wed Jul 5 23:49:06 2000 From: dneumann at apple.com (David Neumann) Date: Wed Jul 5 22:49:06 2000 Subject: headers Message-ID: <200007060548.WAA08338@scv1.apple.com> I'm no HTTP guru and could be wrong, but I don't think you can necessarily control what headers a web server interface passes to you. For example, NES 3.6's CGI interface does not pass the "authorization" header but its NSAPI does. You can certainly return any headers you please and these seem to make it to the client regardless. If the ISAPI interface is not passing "myheader" then there's nothing you can do really... except look for some undocumented feature in the ISAPI that does the trick for you. d ---------- >From: Brian Wotring >To: webobjects@omnigroup.com >Subject: headers >Date: Wed, Jul 5, 2000, 8:29 PM > > > Hopefully somebody can help me with this. I have been unable to allow > custom headers into a WO app deployed on an NT box, using the IIS adaptor. > > I've modified the httpheaders.h and added "myheader", to the http_headers[] > array. Compiled the adaptor, and placed the new WebObjects.dll in the > /scripts directory, and rebooted the box. > > Is this the only steps necessary to allow a header, "myheader" for example, > through to the application? When I print out the headers dictionary, I do > not see the header coming through when sent. > > In addition, I have tried adding "HTTP_myheader" to the array. Same result. > > Any help will be appreciated, thanks. > > > > > | Brian Wotring ( brian@fortnocs.com ) > | Fort Nocs, Inc. > | PGP Key ID: 0x9674763D > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From mve at cerebri.com Thu Jul 6 00:06:35 2000 From: mve at cerebri.com (Matthias Vetsch) Date: Wed Jul 5 23:06:35 2000 Subject: EOAdaptor for DB2? Message-ID: <005801bfe718$af7958e0$0200a8c0@access.ch> This is a multi-part message in MIME format. ------=_NextPart_000_0055_01BFE721.0EBA7160 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I'd like to use a DB2 database installed on AS/400. Does anyone know = whether an EOAdaptor for DB2 exists and where I can get it? Thanks, Matthias =20 ------=_NextPart_000_0055_01BFE721.0EBA7160 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
I'd like to use a DB2 database = installed on=20 AS/400. Does anyone know whether an EOAdaptor for DB2 exists and = where I=20 can get it?
Thanks,
Matthias =  
------=_NextPart_000_0055_01BFE721.0EBA7160-- From brendan at clickspace.com Thu Jul 6 00:08:53 2000 From: brendan at clickspace.com (Brendan Duddridge) Date: Wed Jul 5 23:08:53 2000 Subject: Parent to Child component communication In-Reply-To: <200007052352.QAA08993@scyther.omnigroup.com> Message-ID: Hi, Ok, so I know a child component can invoke a parent's action method. But how do you make a parent invoke a child's action method? I'm creating a generic Address Information component that has a method to validate its contents, but has no widget to invoke that action. I'd like the parent component to invoke that action. I'm doing this because I want to use the Address Information component in more than one page, but those other pages can have additional form elements that need to be submitted along with the child's form elements. So I'd like to have the parent call the child component's validateInput() method. The validateInput() method sets an attribute isValidInput on the child which is bound to the parent's isValid() method. Then the parent will know if the child's input is valid (ie, all required form values have been specified, the user isn't entering a duplicate record into the database, etc.) If the child's input is valid, then the parent can proceed to validate it's own form values. Is this possible? If so, how do you do it? Or should I scrap that idea and re-work my components so that I don't have parent form values on the same component as a child component? I was just trying to re-use the same form on more than one component. Thanks for the help, Brendan Duddridge ClickSpace Interactive Inc. Calgary, AB Canada http://www.clickspace.com/ From milliken at ricochet.net Thu Jul 6 00:34:34 2000 From: milliken at ricochet.net (Seth Milliken) Date: Wed Jul 5 23:34:34 2000 Subject: _scope selector not recognized Message-ID: I've just deployed a WO 4.5 application on Mac OS X Server 1.2. The app is running fine, but I've been having a bit of trouble getting Monitor to work. When I launch Monitor, the first page comes up fine, but if I do anything at all, it throws an exception. Here are two exceptions representative of my problems: Exception while evaluating WebScript expression [super appendToResponse:aResponse inContext:aContext]: : Cannot initialize because: *** -[WOCollapsibleComponentContent _scope]: selector not recognized Exception occured while evaluating 'hostList', on target:: *** -[HostsPage _scope]: selector not recognized Does anyone recognize these symptoms as indicative of an obvious mistake I've made? -- _____________________________________________________ Seth Milliken milliken@ricochet.net San Francisco PGP Public Key Available _____________________________________________________ From Malte Tancred Thu Jul 6 01:15:27 2000 From: Malte Tancred (Malte Tancred) Date: Thu Jul 6 00:15:27 2000 Subject: Deny Delete Rule ignored on some relationships Message-ID: Hi! Posted this question on the eof list some days ago. No answer as of yet so I'll try here as well... /M Begin forwarded message: From: Malte Tancred Date: 2000-06-30 13:09:44 +0200 To: eof@omnigroup.com Subject: Deny Delete Rule ignored on some relationships Hi! Our problem: Deny delete rule in a 1-n relationship in some cases does not work if the relation is an array fault, ie the objects pointed to by the relationship is not fetched yet. Case description The two basic entities involved: Folder and FolderItem. Folder has two relationships, subfolders (to-many to Folder) and items (to-many to FolderItem). Both entities are abstract. The Folder entity For the Folder entity there exists several concrete sub-entities/ subclasses, all of which are stored in the same table in the database. The FolderItem entity The FolderItem entity has a different setup than Folder. There are several abstract sub-entities/subclasses to FolderItem, which in turn have several concrete sub-entities/subclasses. The concrete entities are stored in separate tables in the database. The 'middle-layer' is simply there to narrow down the SELECTs for a specific category of folder items. Delete rules In Folder, if the delete rule for the relationship 'subfolders' is set to DENY in the concrete sub-entities to Folder everything works as expected. Ie trying to delete a folder which has subfolders is not allowed. If the same DENY rule is set on the 'items' relationship than it is possible to remove a folder if the items are not already fetched, ie 'items' points to an array fault. If we trigger the array fault before deletion of the folder (by issuing a [[folder items] self] call) then the rule works as expected - the folder cannot be deleted. Has anyone experienced similar problems? Cheerio, Malte -- Malte Tancred, Oops AB malte@oops.se http://www.oops.se From clread at mindspring.com Thu Jul 6 02:33:44 2000 From: clread at mindspring.com (Charles L. Read) Date: Thu Jul 6 01:33:44 2000 Subject: managing software downloads on a storefront Message-ID: <87puorwzcz.fsf@mindspring.com> How do people manage (and restrict) software downloads on a web-site through WebObjects? I would prefer *not* to put downloadable files under DocumentRoot. So, is there some way I can push the downloadable files when someone presses a link? Regards, -- Charles L. Read PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D 70 C1 DF 5F 65 From centro at altera.it Thu Jul 6 03:00:57 2000 From: centro at altera.it (Matteo Centro) Date: Thu Jul 6 02:00:57 2000 Subject: WOPopUpButton Values Message-ID: Hi all, I need WOPopUpButton to generate a And I need to do > > > > Is there an easy way to do this? > Thanks, you should put something in the "value" binding of the WOPopUpButton (just look at the documentation for WOPopUpButton) For example, bind a method that, given an element of the popUpButton list (you can access it through the 'item' binding), returns the correct string ("CC" for "Coke"). Hope it helps. Ciao, Filippo ------------------------------------------------------------------------ Filippo Macchiettini Project Engineer at Concept S.r.l  filippo.macchiettini@concept.it http://www.concept.it     From Christoph.Niessen at dv-org.de Thu Jul 6 05:57:25 2000 From: Christoph.Niessen at dv-org.de (Christoph Niessen) Date: Thu Jul 6 04:57:25 2000 Subject: EOF and SQL Server 7 Message-ID: Hello everybody, I am forwarding this on behalf of a customer: --- I have a problem regarding Weobjects. I use the odbc adapter to connect my eomodel to microsoft sql and I can fetch records in the eomodel correctly with that. However, when my obj-c program tries to fetch a record, it gives EOGeneralAdapterException. What is the problem?? I am using SQL7.0 standard pack. With SQL enterprise 7.0, it is alright though. --- Any ideas? Christoph Niessen www.wapobjects.com From squirk at home.com Thu Jul 6 06:17:16 2000 From: squirk at home.com (Steve Quirk) Date: Thu Jul 6 05:17:16 2000 Subject: EOAdaptor for DB2? In-Reply-To: <005801bfe718$af7958e0$0200a8c0@access.ch> Message-ID: Yes. It's the ODBC adaptor. Works great. Steve On Thu, 6 Jul 2000, Matthias Vetsch wrote: > I'd like to use a DB2 database installed on AS/400. Does anyone know > whether an EOAdaptor for DB2 exists and where I can get it? Thanks, > Matthias > From jrg23 at yahoo.com Thu Jul 6 06:55:07 2000 From: jrg23 at yahoo.com (John Gassenheimer) Date: Thu Jul 6 05:55:07 2000 Subject: WO and Win2000 Message-ID: <20000706125505.10476.qmail@web124.yahoomail.com> Yes WO4.5 works on W2K. I know we have clients deployed with it but my experience is mostly with development and no major problems so far :) jrg@apple.com --- Leon Amdour wrote: > Hi, everyone. > > Can anyone tell me if WO4.5 works with Win2000, and > if it does, are there > any problems I need to be aware of. > Thanks a lot. > Leon > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects __________________________________________________ Do You Yahoo!? Send instant messages & get email alerts with Yahoo! Messenger. http://im.yahoo.com/ From jrg23 at yahoo.com Thu Jul 6 07:02:28 2000 From: jrg23 at yahoo.com (John Gassenheimer) Date: Thu Jul 6 06:02:28 2000 Subject: simple DB query Message-ID: <20000706130225.11617.qmail@web124.yahoomail.com> There are a few ways to do this. You can use a model based fetch specification where you can pass in a binding with "myString". And then use EOUtilities method objectsWithFetchSpecificationAndBindings(editingContext, entityName, fetchSpecName, bindingDict) or you can create a fetch specification and fetch in code. to see source code and examples look in WOInfoCenter under Books/WebObjects/Topics In WebObjects Programming/Fetching good luck jrg@apple.com --- "Charles L. Read" wrote: > > How is a simple DB query done within WO? > Eg, in SQL: > > select * from Customer where emailAddr="myString"; > > -- > Charles L. Read > PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D > 70 C1 DF 5F 65 > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects __________________________________________________ Do You Yahoo!? Send instant messages & get email alerts with Yahoo! Messenger. http://im.yahoo.com/ From bmarquis at ogse.com Thu Jul 6 07:24:31 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Thu Jul 6 06:24:31 2000 Subject: unableToSetNilForKey Message-ID: Has anyone actually used "unableToSetNullForKey" in Java? I'm beginning to wonder if it works at all. This brings me to another question. Is it better to simply avoid using scalar types for exposed properties/accessors? > -----Original Message----- > From: Brian P. Marquis [SMTP:bmarquis@ogse.com] > Sent: Wednesday, July 05, 2000 2:35 PM > To: Multiple recipients of list (E-mail) > Subject: RE: unableToSetNilForKey > > I've made the following changes to my class, but still get the > NSInvalidArgumentException, and the println never gets executed. Wierd. > Any > ideas? > > public void unableToSetNullForKey( String keyname ) { > System.out.println( keyname + "\n" ); > if ( keyname.equals("qty") ) { > qty = 0; > } else { > super.unableToSetNullForKey( keyname ); > } > } > > > > -----Original Message----- > > From: Brian P. Marquis [SMTP:bmarquis@ogse.com] > > Sent: Wednesday, July 05, 2000 2:05 PM > > To: Multiple recipients of list (E-mail) > > Subject: unableToSetNilForKey > > > > I need to be able to override unableToSetNilForKey, but I want the > default > > behavoir for the fields I'm not checking. I tried > > super.unableToSetNilForKey( keyname ); but that method doesn't exist in > > EOCustomObject. > > > > public void unableToSetNilForKey(String keyname) { > > if ( keyname.equals("qty") ) { > > qty = 0; > > } else { > > // not sure what goes here > > } > > } > > _______________________________________________ > > WebObjects mailing list > > WebObjects@omnigroup.com > > http://www.omnigroup.com/mailman/listinfo/webobjects > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From wostuff at hotmail.com Thu Jul 6 07:45:47 2000 From: wostuff at hotmail.com (Andrus Adamchik) Date: Thu Jul 6 06:45:47 2000 Subject: managing software downloads on a storefront Message-ID: Charles, I haven't implemented it yet, but lately I was thinking a lot about this problem. I came up with some stuff for FTP download (after all it is faster then HTTP). So here is how I see it: 1. You set up an FTP server and create an "anonymous" account there (creating *real* user accounts may present a security threat). There will be a directory tree accessible by anonymous users (say everyting under /home/ftp/pub), but to download a file user must have at least "read" permissions. 2. When a user checks out from the store and makes a payment, a new directory is created on FTP server where all the files he can access are copied. At this point they will be owned by root and have permissions like 500 (anonymous user still can NOT access them). 3. When a user clicks on "Download" link in WebObjects (I assume WO application already did authentication), a script is executed on the FTP server to change permissions to say 544, and directory is renamed to some random name (like WO Session ID). 4. User redirected to the URL of this new directory and performs download. 5. When the download is complete (terminated or stalled), a script on the server will revoke those read permissions and rename directories back to their original state making them inaccessible again. This idea is the same as the idea behind WO Session security - SessionId is random and lives for a short period of time only, so it is hard to hijack it. Hope this helps. Please let me know if you have better solutions (or any specific solutions that work with HTTP). Andrus >From: clread@mindspring.com (Charles L. Read) >To: webobjects@omnigroup.com >Subject: managing software downloads on a storefront >Date: 06 Jul 2000 01:23:56 -0500 > >How do people manage (and restrict) software downloads >on a web-site through WebObjects? > >I would prefer *not* to put downloadable files >under DocumentRoot. So, is there some way I >can push the downloadable files when someone >presses a link? > >Regards, >-- >Charles L. Read >PGP fingerprint = 5F 94 2C B6 36 35 64 A9 CF F5 3D 70 C1 DF 5F 65 >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects ________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com From bmarquis at ogse.com Thu Jul 6 07:52:11 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Thu Jul 6 06:52:11 2000 Subject: Uname question Message-ID: I ran across a problem with the WebObjects adaptor connecting to a WOapp running on HP-UX (the adaptor was running on RH 6.2). I kept getting invalid host name when I tried to start the app from monitor and finally discovered through careful examination of http://appserver:1085 that the app was running on "Appservername" while the host in monitor was set to "appservername". Question is, since dns is case-insensitive, is it ok to use mixed case or should we change the machine name to lowercase? From jon at holicow.com Thu Jul 6 07:58:43 2000 From: jon at holicow.com (Jon Nolan) Date: Thu Jul 6 06:58:43 2000 Subject: unableToSetNilForKey In-Reply-To: Message-ID: Yes. Here's my method. public void unableToSetNullForKey(String key) { takeValueForKey(new Integer(0), key); } Works every time in both 4.0.1 and 4.5. Jon >Has anyone actually used "unableToSetNullForKey" in Java? I'm beginning to >wonder if it works at all. > >This brings me to another question. Is it better to simply avoid using >scalar types for exposed properties/accessors? > >> -----Original Message----- >> From: Brian P. Marquis [SMTP:bmarquis@ogse.com] >> Sent: Wednesday, July 05, 2000 2:35 PM >> To: Multiple recipients of list (E-mail) >> Subject: RE: unableToSetNilForKey >> >> I've made the following changes to my class, but still get the >> NSInvalidArgumentException, and the println never gets executed. Wierd. >> Any >> ideas? >> >> public void unableToSetNullForKey( String keyname ) { >> System.out.println( keyname + "\n" ); >> if ( keyname.equals("qty") ) { >> qty = 0; >> } else { >> super.unableToSetNullForKey( keyname ); >> } >> } >> >> >> > -----Original Message----- >> > From: Brian P. Marquis [SMTP:bmarquis@ogse.com] >> > Sent: Wednesday, July 05, 2000 2:05 PM >> > To: Multiple recipients of list (E-mail) >> > Subject: unableToSetNilForKey >> > >> > I need to be able to override unableToSetNilForKey, but I want the >> default >> > behavoir for the fields I'm not checking. I tried >> > super.unableToSetNilForKey( keyname ); but that method doesn't exist in >> > EOCustomObject. >> > >> > public void unableToSetNilForKey(String keyname) { >> > if ( keyname.equals("qty") ) { >> > qty = 0; >> > } else { >> > // not sure what goes here >> > } >> > } >> > _______________________________________________ >> > WebObjects mailing list >> > WebObjects@omnigroup.com >> > http://www.omnigroup.com/mailman/listinfo/webobjects >> _______________________________________________ >> WebObjects mailing list >> WebObjects@omnigroup.com >> http://www.omnigroup.com/mailman/listinfo/webobjects >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From bmarquis at ogse.com Thu Jul 6 07:58:55 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Thu Jul 6 06:58:55 2000 Subject: Initialising PageWithName Objects Message-ID: > > How can I put initialisation code for that object i a similar way as > > one normally can when using a constructor? > > > As pointed out by another post, you can use accessor methods to set properties on a component returned from pageWithName. If you must use the objects constructor for initialization, then you could use the session object to pass values and access them in the objects construtor. From mmalc at stepwise.com Thu Jul 6 08:09:08 2000 From: mmalc at stepwise.com (mmalcolm crawford) Date: Thu Jul 6 07:09:08 2000 Subject: unableToSetNilForKey In-Reply-To: Message-ID: Brian P. Marquis wrote: > Has anyone actually used "unableToSetNullForKey" in Java? I'm beginning to > wonder if it works at all. > Have you set the "Allow null value" switch in the advanced attribute inspector? If not, the model constraints will be checked before your code is reached... > This brings me to another question. Is it better to simply avoid using > scalar types for exposed properties/accessors? > In general, probably yes. For one thing you have to cater for null values(!); furthermore whilst you may think that you're saving memory, recall that snapshots have to be made, and if you're using an EOGenericRecord in 4.5 you'll be saving the ivars in a dictionary, so they'll have to be objects too... so actually you may be both not saving memory, and actually causing the system to do a number of "unwanted" conversions between objects and scalars. mmalc. From brian at fortnocs.com Thu Jul 6 08:30:58 2000 From: brian at fortnocs.com (Brian Wotring) Date: Thu Jul 6 07:30:58 2000 Subject: EOF errors Message-ID: <3.0.6.32.20000706074024.0133fde0@mailhost.fortnocs.com> Is it common for EOF to have exceptions like this? I'm using SQL server, two instances of the WO app were running, and these apps were NOT handling concurrent requests. The apps just do a very small single insert per request:
NSInternalInconsistencyException:
_primaryKeyForObject:: EODatabaseContext 0xc98810 is unable to obtain a
primary key for FNTransaction object 0xc8fc00
	at java.lang.Throwable.<init>(Compiled Code)
	at java.lang.Exception.<init>(Compiled Code)
	at java.lang.RuntimeException.<init>(Compiled Code)
	at com.apple.yellow.foundation.NSException.<init>(Compiled Code)
	at FNDatabaseManager.logTransaction(Compiled Code)
	at FNRequestManager.handleRequestWithResponse(Compiled Code)
	at DirectAction.defaultAction(Compiled Code)
| Brian Wotring ( brian@fortnocs.com ) | Fort Nocs, Inc. | PGP Key ID: 0x9674763D From jon at holicow.com Thu Jul 6 08:31:47 2000 From: jon at holicow.com (Jon Nolan) Date: Thu Jul 6 07:31:47 2000 Subject: unableToSetNilForKey In-Reply-To: References: Message-ID: >> This brings me to another question. Is it better to simply avoid using >> scalar types for exposed properties/accessors? >> >In general, probably yes. For one thing you have to cater for null >values(!); furthermore whilst you may think that you're saving memory, >recall that snapshots have to be made, and if you're using an >EOGenericRecord in 4.5 you'll be saving the ivars in a dictionary, so >they'll have to be objects too... so actually you may be both not saving >memory, and actually causing the system to do a number of "unwanted" >conversions between objects and scalars. > >mmalc. mmalc, I believe that you say is absolutely true. I don't think it's a good idea at all to use scalar types in EOs. There is also a bunch of non-EO key value binding going on in the typical WO application and so the problem remains. I'm not sure what Brian is doing but the little example I posted previously is used within financial calculator components that depend on scalar types to calculate annuity, compound, future value, etc. I try to avoid using objects for my ivars in this situation. Obviously these components could be implemented with objects and conversions would be made before the calculations. I just prefer the scalar approach. It seems cleaner and more efficient for my purposes. Jon Nolan Web Dynamics, Inc. 476 Heritage Park Blvd., Suite 215 Layton, Utah 84041 Phone: 801-927-1008 Email: jon@holicow.com From randy at oceansoft.com Thu Jul 6 08:35:12 2000 From: randy at oceansoft.com (Randy Leonard) Date: Thu Jul 6 07:35:12 2000 Subject: wish list and bad things in WO Message-ID: I've been asking for this since the early days of WebObjects, but it's never seemed to be on the list of Apple's priorities for WebObjects. They do it for Interface Builder, why not WebObjectsBuilder? I hacked this functionality into WebObjects 3.x and it worked great! But it's not advisable to release a product dependent on Apple's private API's ;). Randy Leonard Ocean Software, Inc. randy@oceansoft.com 904-363-1646 -----Original Message----- From: d.theisen@objectpark.de [mailto:d.theisen@objectpark.de] Sent: Tuesday, July 04, 2000 6:43 PM To: gustavo.frederico@usa.net Cc: webobjects@omnigroup.com Subject: Re: wish list and bad things in WO Hello! > Here is my wish list for WebObjects: > - my own custom sub-component representation in WebObjectsBuilder. I want my > sub-component to look like a WORepetition, or a WOCondition In addition, we'd like to be able to provide custom views and custom inspectors(!) like the BODY inspector > - EOModeler format in xml > - XMLFileAdaptor > - change wod files to xml We at ObjectTeam very much second this. This would allow us to drive user friendlyness and look of our WAP framework to the max. Regards, Dirk _______________________________________________ WebObjects mailing list WebObjects@omnigroup.com http://www.omnigroup.com/mailman/listinfo/webobjects From pvanhout at pragmatyxs.com Thu Jul 6 08:36:43 2000 From: pvanhout at pragmatyxs.com (Paul Van Hout) Date: Thu Jul 6 07:36:43 2000 Subject: EOF and SQL Server 7 In-Reply-To: Message-ID: <003601bfe757$b8c6a3a0$6501a8c0@pragmatyxs.com> What version of WebObjects? If 4.0, have the latest patches been installed? What exception is being thrown? During debug have -EOAdaptorDebugEnable = YES set for the command line as it is helpful for troubleshooting. Paul -----Original Message----- From: webobjects-admin@omnigroup.com [mailto:webobjects-admin@omnigroup.com]On Behalf Of Christoph Niessen Sent: Thursday, July 06, 2000 4:57 AM To: webobjects@omnigroup.com Subject: EOF and SQL Server 7 Hello everybody, I am forwarding this on behalf of a customer: --- I have a problem regarding Weobjects. I use the odbc adapter to connect my eomodel to microsoft sql and I can fetch records in the eomodel correctly with that. However, when my obj-c program tries to fetch a record, it gives EOGeneralAdapterException. What is the problem?? I am using SQL7.0 standard pack. With SQL enterprise 7.0, it is alright though. --- Any ideas? Christoph Niessen www.wapobjects.com _______________________________________________ WebObjects mailing list WebObjects@omnigroup.com http://www.omnigroup.com/mailman/listinfo/webobjects From mb at uptime.ch Thu Jul 6 08:38:18 2000 From: mb at uptime.ch (Michael Bieri) Date: Thu Jul 6 07:38:18 2000 Subject: Localized resources Message-ID: <0007061636.AA460232@zhp105wks> Hi all, does somebody know how it's possible to add a file to the global resources as well as to a certain language project (like the LocalizedHello example) that comes with WO? They did some funny stuff with the japanese resources.... Everytime I try to add a resource to the language project it complains, that it's already in the global resources. And if I try it the other way, it complains, that the file is already in a language project. Is there a difference between resourcefiles (like *.strings) and WOComponents? btw. its for WO 4.01 thanks & greetings Michael ____________________________________________________________________________ Uptime Object Factory Inc Archivierung | Document Management | Workflow Technopark Zuerich, Technoparkstrasse 1, CH-8005 Zuerich | Switzerland Michael Bieri El. Ing. HTL michael.bieri@uptime.ch PHONE +41 (0)1 276 80 60 | FAX +41 (0)1 276 80 61 | WWW http://www.uptime.ch From Jens.Baumeister at Uni-Koeln.DE Thu Jul 6 08:43:58 2000 From: Jens.Baumeister at Uni-Koeln.DE (Jens Baumeister) Date: Thu Jul 6 07:43:58 2000 Subject: Error when trying to save BigDecimal to Oracle NUMBER(12,2) Message-ID: Hi, thanks to the list I found the underlying reason for my EOGeneralAdaptorFault problem: Apparently, I can't save a BigDecimal into an oracle column of the type NUMBER(12,2). Wehn I cange the Oracle type to NUMBER(12) I can happily save any BigDecimal that happens to be a whole number, but with NUMBER(12,2) it won't let me save any number to the DB. The value I'm trying to save is an amount of money that'll never go below 0.00 and not above 999999.99 What datatypes should I be using in Java and / or Oracle? Jens ---- She sells c-shells by the seashore. From cchan at gefmus.com Thu Jul 6 08:58:01 2000 From: cchan at gefmus.com (Chiu Chan) Date: Thu Jul 6 07:58:01 2000 Subject: Send mail from a WebObjects Application? In-Reply-To: Message-ID: <000b01bfe75a$08651b60$0715640a@gefmus.com> Hi, I'm a new user, can anyone please tell me how to send an email from a WebObjects application? thanks Chiu From richterd at umich.edu Thu Jul 6 09:01:46 2000 From: richterd at umich.edu (David Mac Cary Richter) Date: Thu Jul 6 08:01:46 2000 Subject: _scope selector not recognized In-Reply-To: Message-ID: On Wed, 5 Jul 2000, Seth Milliken wrote: > I've just deployed a WO 4.5 application on Mac OS X Server 1.2. The > app is running fine, but I've been having a bit of trouble getting > Monitor to work. When I launch Monitor, the first page comes up fine, > but if I do anything at all, it throws an exception. > Yes, I know what's up: WO4.5 was installed on top of the previous copy of WO4.0x (which hadn't been properly uninstalled). There are two packages in /Local/Library/Receipts that won't properly uninstall now that they'be been partially overwritten. If you try it, you will also notice that D2W apps fail when you try to do anything. You'll need to start over--I strongly recommend a format. -david. _____ i value your electrons--try and hit me: drichter@apple.com / richterd@umich.edu 415.902.3724 (PCS) / 408.974.2871 (off) . http://www.downhaven.com . From Jens.Baumeister at Uni-Koeln.DE Thu Jul 6 09:07:15 2000 From: Jens.Baumeister at Uni-Koeln.DE (Jens Baumeister) Date: Thu Jul 6 08:07:15 2000 Subject: Send mail from a WebObjects Application? In-Reply-To: <000b01bfe75a$08651b60$0715640a@gefmus.com> Message-ID: On Thu, 6 Jul 2000, Chiu Chan wrote: > Hi, I'm a new user, > can anyone please tell me how to send an email > from a WebObjects application? Look at the documentaion for this class: WOMailDelivery Jens From mmalc at stepwise.com Thu Jul 6 09:09:16 2000 From: mmalc at stepwise.com (mmalcolm crawford) Date: Thu Jul 6 08:09:16 2000 Subject: unableToSetNilForKey In-Reply-To: Message-ID: I wrote: >> This brings me to another question. Is it better to simply avoid using >> scalar types for exposed properties/accessors? > In general, probably yes. [...] whilst you may think that you're saving, > memory recall that snapshots have to be made, and if you're using an > EOGenericRecord in 4.5 you'll be saving the ivars in a dictionary, so > they'll have to be objects too... so actually you may be both not saving > memory, and actually causing the system to do a number of "unwanted" > conversions between objects and scalars. > Sorry for being lazy here (and thanks to Jon Nolan for nudging -- in private! :-) The "implied" converse to this is, if your business logic is accessing these values more frequently than EOF, then scalar ivars may be more efficient. mmalc From mmalc at stepwise.com Thu Jul 6 09:11:54 2000 From: mmalc at stepwise.com (mmalcolm crawford) Date: Thu Jul 6 08:11:54 2000 Subject: Send mail from a WebObjects Application? In-Reply-To: <000b01bfe75a$08651b60$0715640a@gefmus.com> Message-ID: Chiu Chan wrote: > can anyone please tell me how to send an email > from a WebObjects application? > Check out WOMailDelivery. mmalc. From Michael.Chen at hbo.com Thu Jul 6 09:34:08 2000 From: Michael.Chen at hbo.com (Chen, Michael (HBO)) Date: Thu Jul 6 08:34:08 2000 Subject: Broken images for "direct to Java client" Message-ID: Hi: I used the "direct to Java client template" to create a Java client Application. Right now, the users of my application need to specify the port number (e.g., http://www.host.com:1234/cgi-bin/WebObjects/application ) in the URL to display the images properly. (The images are in the framework - EOJavalient.framework.) If users left out the port number in the URL, then they got broken images for the application. The Java console utility of Netscape displays the following error messages: ... Could not load icon with url /WebObjects/Frameworks/EOJavaClient.framework/WebServerResources/ActionIconF ind.gif ... Any comments will be appreciated. Sincerely, Mike Chen From dempseyj at apple.com Thu Jul 6 09:35:24 2000 From: dempseyj at apple.com (James Dempsey) Date: Thu Jul 6 08:35:24 2000 Subject: WORedirect (was Re: EOKeyBinding warning etc.) In-Reply-To: <4.2.2.20000705164442.023f82d8@hecky.acns.nwu.edu> Message-ID: Just a note - In 4.5 WORedirect has been "promoted" to the WebObjects framework proper in Java (for meritorious service I suppose). Its two methods url() and setURL() are documented in WOInfoCenter (WebObjects Reference (Java)). Of course, it inherits lots of other methods from WOComponent. -James -- James Dempsey Apple iServices Training Apple Computer, Inc. dempsey@apple.com (408) 974-7817 > From: Jonathan Rochkind > Date: Wed, 05 Jul 2000 16:49:19 -0500 > To: michael@stb.nccom.com, webobjects@omnigroup.com > Subject: Re: EOKeyBinding warning - regarding capitalized key > > This is even one of Apple's own reusable components, and it is even > documented to have a key named "URL". Since it's API isn't documented > beyond binding keys, I thought this was the best way to deal with it. > > However, my application actually was crashing right at this point for > reasons that appeared to be due to the capital-U key. Not predictably every > time, even more odd, but just sometimes. Changing it to the undocumented > redirect.setURL("http://adfadf"); got rid of the crashes. From shayman at apple.com Thu Jul 6 09:37:35 2000 From: shayman at apple.com (Steve Hayman) Date: Thu Jul 6 08:37:35 2000 Subject: PWO II Training in Toronto Message-ID: <3964A766.6B949720@apple.com> The Programming WebObjects courses taught in Toronto (and Montreal) are indeed Apple courses, taught in the Apple offices by Apple employees (or, sometimes, Apple subcontractors) on MacOS X Server. It's the same high-quality course you would get if you went to Cupertino or any of the other Apple locations. Regards, Steve -- Steve Hayman Senior Systems Engineer, Apple iServices, Toronto shayman@apple.com || (416) 769-8995 From scottc at centricsystems.ca Thu Jul 6 09:38:27 2000 From: scottc at centricsystems.ca (Scott Corscadden) Date: Thu Jul 6 08:38:27 2000 Subject: Error when trying to save BigDecimal to Oracle NUMBER(12,2) References: Message-ID: <3964A7C9.8E64A81E@centricsystems.ca> Hi Jens. When you changed your database integrity constraint, did you update your EOModel file? (You can choose 'New Updated Model' then choose this table and see the new way that EOF 'sees' that column). Another thing that might help is to turn EOAdaptorDebugEnabled to see exactly what is being sent to the db. HTH ScottC Jens Baumeister wrote: > > Hi, > > thanks to the list I found the underlying reason for my > EOGeneralAdaptorFault problem: > > Apparently, I can't save a BigDecimal into an oracle column of the type > NUMBER(12,2). > > Wehn I cange the Oracle type to NUMBER(12) I can happily save any > BigDecimal that happens to be a whole number, but with NUMBER(12,2) it > won't let me save any number to the DB. > > The value I'm trying to save is an amount of money that'll never go below > 0.00 and not above 999999.99 > > What datatypes should I be using in Java and / or Oracle? > > Jens > > ---- > She sells c-shells by the seashore. > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From marcus.mueller at pixelpark.com Thu Jul 6 09:39:42 2000 From: marcus.mueller at pixelpark.com (Marcus Mueller) Date: Thu Jul 6 08:39:42 2000 Subject: WOF 4.0, 4.5 JavaVM quirks Message-ID: <200007061539.IAA22658@scyther.omnigroup.com> Hi, did someone notice, that there's an obvious problem with using java.net.* classes in a Java project on WebObjects 4.01 and 4.5? If you use UDP, for example, you get the following: ld.so.1: /www/apps/webobjects-4.5/Local/Library/WebObjects/Applications/ChangeReflector.woa/ChangeReflector: fatal: libnet.so: open failed: No such file or directory (libnet.so) Jul 06 17:16:29 ChangeReflector[4664] *** : Cannot initialize because: java/lang/UnsatisfiedLinkError: no net in shared library path Stack Trace: java.lang.UnsatisfiedLinkError: no net in shared library path at java.lang.Runtime.loadLibrary(Runtime.java) at java.lang.System.loadLibrary(System.java) at at at UDPChangeListener.(UDPChangeListener.java:56) at UDPChangeListener.(UDPChangeListener.java:51) at Application.setup(Application.java:55) at Application.(Application.java:33) libnet.so is located in $(NEXT_ROOT)/Library/JDK/lib/sparc/native_threads, but as far as I understand what's happening with the LD_LIBRARY_PATH there should also be a link to that shared object from $(NEXT_ROOT)/Library/JDK/lib. Is there any reason why it's missing, other than a mistake/omission in Apple's installer scripts? Or am I missing something? Will providing the links solve my problems or will it introduce new subtle errors? I need to be sure on this, otherwise or deployment is in danger. Thanks in advance, Marcus -- Marcus Müller . . . IT Developer Pixelpark AG Dortmund . http://www.pixelpark.com Ruhrallee 9 . 44139 Dortmund . Germany phone: +49 231 552 1455, fax: -1490 From jleung at ci.tacoma.wa.us Thu Jul 6 09:44:09 2000 From: jleung at ci.tacoma.wa.us (jleung@ci.tacoma.wa.us) Date: Thu Jul 6 08:44:09 2000 Subject: ReportMill question Message-ID: In ReportMill, does anyone know how to change the name of a Table once it has been created. I am trying to cut and paste Tables from one template to another or reproduce the same Table within a template under a different Table name. John From dempseyj at apple.com Thu Jul 6 10:00:02 2000 From: dempseyj at apple.com (James Dempsey) Date: Thu Jul 6 09:00:02 2000 Subject: PWO II Training in Toronto In-Reply-To: <3964A766.6B949720@apple.com> Message-ID: > It's the same high-quality course you would get if you went to Cupertino or > any of the other Apple locations. With the sole exception that any beer you may hoist at the end of a brain-filling day of training has more alcoholic content in Canada... -James -- James Dempsey Apple iServices Training Apple Computer, Inc. dempsey@apple.com (408) 974-7817 > From: Steve Hayman > Date: Thu, 06 Jul 2000 11:36:06 -0400 > To: webobjects@omnigroup.com > Cc: Bill Garrison > Subject: Re: PWO II Training in Toronto > > The Programming WebObjects courses taught in Toronto (and Montreal) are > indeed Apple courses, taught in the Apple offices by Apple employees > (or, sometimes, Apple subcontractors) on MacOS X Server. > It's the same high-quality course you would get if you went to Cupertino or > any > of the other Apple locations. > > Regards, > Steve > -- > Steve Hayman > Senior Systems Engineer, Apple iServices, Toronto > shayman@apple.com || (416) 769-8995 > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From dempseyj at apple.com Thu Jul 6 10:01:51 2000 From: dempseyj at apple.com (James Dempsey) Date: Thu Jul 6 09:01:51 2000 Subject: Localized resources In-Reply-To: <0007061636.AA460232@zhp105wks> Message-ID: Michael, There appears to be a limitation in Project Builder in which it will allow a resource to be localized OR global, but not both. This is inconvenient, however here are two potential workarounds: Workaround #1 Not so elegant: Philosophy: Forget PB - I'll just make sure everything's right in the file system when I deploy. Localized resources are just file system-based resources, and so, you could just ensure that you manually put the right global resources in the top level Resources/WebServerResources directories when you deploy. Not a terrific solution as it is file-moving intensive, not automatic, and error prone. Workaround #2 More elegant: Philosophy: Use the functionality that is provided to achieve the desired effect Make a language project for your global, default language. (In the US that might be English). Put all of your 'global' default items in there, and manage it like any other language. In your Session class, override setLanguages() so that it always appends your global language (in this case, the string "English") to the incoming array of languages. This way, whenever the language is set by either you or the framework, the default language is always at the end of the list as a 'catch-all'. In this scenario, a session always has a fallback language which serves as the global/default, and you can use Project Builder to manage those global/default resources since they too are stored in a language project. Thanks to Erik Doernenburg for confirmation on technique #2. This should be the case in WO 4.0 and later. -James -- James Dempsey Apple iServices Training Apple Computer, Inc. dempsey@apple.com (408) 974-7817 > From: Michael Bieri > Date: Thu, 06 Jul 2000 16:36:46 +0200 > To: webobjects@omnigroup.com > Subject: Localized resources > > Hi all, > > does somebody know how it's possible to add a file to the global resources > as well as to a certain language project (like the LocalizedHello example) > that comes with WO? They did some funny stuff with the japanese > resources.... > > Everytime I try to add a resource to the language project it complains, that > it's already in the global resources. And if I try it the other way, it > complains, that the file is already in a language project. > > Is there a difference between resourcefiles (like *.strings) and > WOComponents? > > btw. its for WO 4.01 > > thanks & greetings > Michael > ____________________________________________________________________________ > Uptime Object Factory Inc > Archivierung | Document Management | Workflow > Technopark Zuerich, Technoparkstrasse 1, CH-8005 Zuerich | Switzerland > > Michael Bieri > El. Ing. HTL > michael.bieri@uptime.ch > > PHONE +41 (0)1 276 80 60 | FAX +41 (0)1 276 80 61 | WWW http://www.uptime.ch > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From schnitz at round1.com Thu Jul 6 10:20:25 2000 From: schnitz at round1.com (Ray Schnitzler) Date: Thu Jul 6 09:20:25 2000 Subject: Workaround for Annoying ProjectBuilder Definition Search Bug? Message-ID: Nope, we're using WO 4.5, G4's, and ObjC, too. The button seems to be the only problem for us. Ray > -----Original Message----- > From: Eric Hermanson [mailto:ehermanson@gofish.com] > Sent: Wednesday, July 05, 2000 10:06 PM > To: webobjects@omnigroup.com > Subject: Re: Workaround for Annoying ProjectBuilder Definition Search > Bug? > > > ----- Original Message ----- > From: "Ray Schnitzler" > > > In our experience, it seems that this happens when you > start a definition > > search by clicking the button. Searching by hitting > doesn't cause > > the problem. > > That's not my experience. For me, the find panel eventually > gets 'hosed' > regardless of whether I use the button or just hit return to initiate > "Definition" search. I'm using a 500 Mhz G4, WO4.5, mainly > searching Obj-C. > Maybe it works for Java files, and not Obj-C, and that's why > I'm seeing the > problems while others are not? > > - Eric > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > From jmiller at ecashtech.com Thu Jul 6 10:41:14 2000 From: jmiller at ecashtech.com (jmiller@ecashtech.com) Date: Thu Jul 6 09:41:14 2000 Subject: Parent to Child component communication Message-ID: <6FD4D24264E1D311A29A00508B8BC9C112CDE2@MAIL1> Won't it be easier to have the validation of your form elements invoked by your Address component itself? For example, you could do this in Address.invokeAction(), set your isValid-flag there and inform the parent, if validation errors occured. With this, you could still reuse your Address-component ... J -----Original Message----- From: Brendan Duddridge [mailto:brendan@clickspace.com] Sent: Wednesday, July 05, 2000 11:09 PM To: webobjects@omnigroup.com Subject: Parent to Child component communication Hi, Ok, so I know a child component can invoke a parent's action method. But how do you make a parent invoke a child's action method? I'm creating a generic Address Information component that has a method to validate its contents, but has no widget to invoke that action. I'd like the parent component to invoke that action. I'm doing this because I want to use the Address Information component in more than one page, but those other pages can have additional form elements that need to be submitted along with the child's form elements. So I'd like to have the parent call the child component's validateInput() method. The validateInput() method sets an attribute isValidInput on the child which is bound to the parent's isValid() method. Then the parent will know if the child's input is valid (ie, all required form values have been specified, the user isn't entering a duplicate record into the database, etc.) If the child's input is valid, then the parent can proceed to validate it's own form values. Is this possible? If so, how do you do it? Or should I scrap that idea and re-work my components so that I don't have parent form values on the same component as a child component? I was just trying to re-use the same form on more than one component. Thanks for the help, Brendan Duddridge ClickSpace Interactive Inc. Calgary, AB Canada http://www.clickspace.com/ _______________________________________________ WebObjects mailing list WebObjects@omnigroup.com http://www.omnigroup.com/mailman/listinfo/webobjects From bmarquis at ogse.com Thu Jul 6 10:45:44 2000 From: bmarquis at ogse.com (Brian P. Marquis) Date: Thu Jul 6 09:45:44 2000 Subject: unableToSetNilForKey Message-ID: > > Has anyone actually used "unableToSetNullForKey" in Java? I'm beginning > to > > wonder if it works at all. > > > Have you set the "Allow null value" switch in the advanced attribute > inspector? If not, the model constraints will be checked before your code > is reached... > Hmm. I'm not actually using a model at all on this class (in fact in the whole project), since my data source is a socket. Not sure if that means I get a default model or not. If I'm not using a model, should I be extending a different class, like NSObject, instead of EOCustomObject? -- Brian From ehermanson at gofish.com Thu Jul 6 10:47:52 2000 From: ehermanson at gofish.com (Eric Hermanson) Date: Thu Jul 6 09:47:52 2000 Subject: _scope selector not recognized References: Message-ID: <022301bfe769$583da300$1501aa0a@seafax.com> ----- Original Message ----- From: "Seth Milliken" > Exception while evaluating WebScript expression [super > appendToResponse:aResponse inContext:aContext]: > : Cannot initialize because: > *** -[WOCollapsibleComponentContent _scope]: selector not recognized I've seen this error occur when you've taken an existing "wos" component, and turn it into a compiled component (.h / .m), and you forget to remove the "wos" file from the project directory. WebObjects gets confused when loading that component as it tries to load the .m and the .wos implementations. Removing the extraneous .wos file does the trick. Hopefully that helps. - Eric From dempseyj at apple.com Thu Jul 6 11:00:04 2000 From: dempseyj at apple.com (James Dempsey) Date: Thu Jul 6 10:00:04 2000 Subject: unableToSetNilForKey In-Reply-To: Message-ID: Is the value that you are trying to set an object instance variable? or a scalar type like 'int'? Key-value coding will happily set any object type to null, since it is a valid representable value in Java. Integer age = null; // perfectly good Java unableToSetNullForKey() will only be called when your object is handed null and tries to set some int or float to null (which, of course, is not doable). This method is there to catch the case where, literally, you are "unable to set null" for that instance variable because the language will not allow it. int age = null; // perfectly bad Java -James -- James Dempsey Apple iServices Training Apple Computer, Inc. dempsey@apple.com (408) 974-7817 > From: "Brian P. Marquis" > Date: Thu, 06 Jul 2000 11:36:23 -0500 > To: 'mmalcolm crawford' , "Brian P. Marquis" > , "Multiple recipients of list (E-mail)" > > Subject: RE: unableToSetNilForKey > >>> Has anyone actually used "unableToSetNullForKey" in Java? I'm beginning >> to >>> wonder if it works at all. >>> >> Have you set the "Allow null value" switch in the advanced attribute >> inspector? If not, the model constraints will be checked before your code >> is reached... >> > Hmm. I'm not actually using a model at all on this class (in fact in the > whole project), since my data source is a socket. Not sure if that means I > get a default model or not. > > If I'm not using a model, should I be extending a different class, like > NSObject, instead of EOCustomObject? > > -- Brian > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From j-rochkind at nwu.edu Thu Jul 6 11:20:06 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Thu Jul 6 10:20:06 2000 Subject: boolean qualifier? Message-ID: <4.2.2.20000706122127.01392690@hecky.acns.nwu.edu> How do I do an in memory sort on a boolean attribute? EOQualifier.qualifierWithQualifierFormat("attribute = true")? Or "attribute = %@", new NSArray(new Boolean(true))); Or some other ObjC-ism I can't guess? What's up? --Jonathan From milliken at ricochet.net Thu Jul 6 11:31:09 2000 From: milliken at ricochet.net (Seth Milliken) Date: Thu Jul 6 10:31:09 2000 Subject: _scope selector not recognized In-Reply-To: <200007060644.CAA06718@zaphod.vienna.BLaCKSMITH.com> References: <200007060644.CAA06718@zaphod.vienna.BLaCKSMITH.com> Message-ID: I feared as much. So what *is* the correct way to uninstall WOF 4.0? I take it the delete buttons in the WebObjectsDeveloper.pkg and WebObjectsDeployment.pkg receipts are not enough? I'll go scan the archives.... On 2:44 AM -0400, 7/6/00, Carl E. Lindberg wrote: >> Does anyone recognize these symptoms as indicative of an obvious >> mistake I've made? > > Yep... you didn't uninstall WOF 4.0 correctly. I think there are a >couple of files you can delete to make the _scope problem go away, though it >may take a reinstall (of OS X Server and 4.5) to make sure things are fine. >Look at recent messages on the webobjects list for more info -- they're >searchable on www.egroups.com, or look at the Omnigroup pages... -- _____________________________________________________ Seth Milliken milliken@ricochet.net San Francisco PGP Public Key Available _____________________________________________________ From jon at holicow.com Thu Jul 6 11:33:18 2000 From: jon at holicow.com (Jon Nolan) Date: Thu Jul 6 10:33:18 2000 Subject: WOJavaScript.scriptSource Message-ID: Hi, I can't seem to figure out the usage of the scriptSource binding in WOJavaScript. I've created a text file containing my script and I use something like http://www.mydomain.com/java-script/my-script.htm (bad extension???) in the scriptSource binding. The file *is* on another server. It doesn't seem to work. WebObjects puts in the and tags but there's nothing between them. I could try the same server approach if that's the problem, however, the finished product will have the application on a different server from the javascript. Any ideas? Thanks, Jon Nolan Web Dynamics, Inc. 476 Heritage Park Blvd., Suite 215 Layton, Utah 84041 Phone: 801-927-1008 Email: jon@holicow.com From pekeler at codefab.com Thu Jul 6 11:46:34 2000 From: pekeler at codefab.com (Christian Pekeler) Date: Thu Jul 6 10:46:34 2000 Subject: Workaround for Annoying ProjectBuilder Definition Search Bug? Message-ID: <200007061746.NAA01129@min.codefab.com> --Apple-Mail-1502788194-2 content-type: text/enriched; charset=us-ascii content-transfer-encoding: quoted-printable HelveticaCFBPBFindWindowFix is a bundle for = ProjectBuilder that should fix this problem. It was done by Chris = Whatley/CodeFab and posted some months ago to another WebObjects list. = --Apple-Mail-1502788194-2 content-type: application/octet-stream; x-unix-mode=0644; name=CFBPBFindWindowFix.tgz content-transfer-encoding: base64 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 laxkJStZyUpW/kPL/wM5qnNtAHgAAA== --Apple-Mail-1502788194-2 content-type: text/enriched; charset=us-ascii content-transfer-encoding: 7bit Helvetica Christian --Apple-Mail-1502788194-2-- From Carl_Lindberg at BLaCKSMITH.com Thu Jul 6 12:39:24 2000 From: Carl_Lindberg at BLaCKSMITH.com (Carl E. Lindberg) Date: Thu Jul 6 11:39:24 2000 Subject: Localized resources In-Reply-To: References: Message-ID: <200007061838.OAA06928@zaphod.vienna.BLaCKSMITH.com> You wrote: > Michael, > > There appears to be a limitation in Project Builder in which it will allow > a resource to be localized OR global, but not both. ProjectBuilder does this for a reason -- NSBundle will always find a global resource before a localized resource when searching for files. So, if a global resource exists, there's no point in having a localized resource. > Workaround #2 More elegant: > Philosophy: Use the functionality that is provided to achieve the desired > effect > > Make a language project for your global, default language. (In the US that > might be English). Put all of your 'global' default items in there, and > manage it like any other language. > > In your Session class, override setLanguages() so that it always appends > your global language (in this case, the string "English") to the incoming > array of languages. This way, whenever the language is set by either you or > the framework, the default language is always at the end of the list as a > 'catch-all'. > > In this scenario, a session always has a fallback language which serves as > the global/default, and you can use Project Builder to manage those > global/default resources since they too are stored in a language project. This is what I'd recommend. In GUI Cocoa apps, all of the languages are typically searched for (the user just determines the order in preferences), so in the end one version or another is always found. The LocalizedHelloWorld example looks as though it removes all but one language in its setLanguages() override, meaning every resource has to exist in that language project for it to be found, losing all the benefits of a search order. -Carl Lindberg _______________________________________________________________ Carl Lindberg Carl_Lindberg@BLaCKSMITH.com (NeXTmail, MIME) From smiles at tpud.org Thu Jul 6 12:42:33 2000 From: smiles at tpud.org (Spencer Miles) Date: Thu Jul 6 11:42:33 2000 Subject: setMasterObject for master/detail WODisplayGroup Message-ID: <003d01bfe779$de3f6960$4bac2ac0@mt108> Hello, I have two display groups in my main.wo component, accountDisplayGroup which points to a table called Account, and billDisplayGroup which is a Master/Detail group (Entity is 'Bill', Master Entity is 'Account', Detail key is 'bills'). I'm not completely certain what I'm doing, but I'm guessing that I need to set the masterObject for the billDisplayGroup equal to the selectedObject in the accountDisplayGroup so that billDisplayGroup knows which account we are using. The code i'm using is as follows: import com.apple.yellow.foundation.*; import com.apple.yellow.webobjects.*; import com.apple.yellow.eocontrol.*; public class Main extends WOComponent { WODisplayGroup accountDisplayGroup; WODisplayGroup billDisplayGroup; EOEnterpriseObject selection = (EOEnterpriseObject)accountDisplayGroup.selectedObject(); billDisplayGroup.setMasterObject(selection); } When I compile i recieve the following error: Main.java:12: Identifier expected. billDisplayGroup.setMasterObject(selection); ^ 1 error My guess is that Identifier is something like putting (WODisplayGroup)billDisplayGroup.setMasterObject(selection); But when I do that I recieve a type expected error. Could someone help me out here? Thanks a ton! -Spencer Miles From deninger at blue.weeg.uiowa.edu Thu Jul 6 12:47:44 2000 From: deninger at blue.weeg.uiowa.edu (Michael Deninger) Date: Thu Jul 6 11:47:44 2000 Subject: WO Development on Lombard Powerbook Message-ID: Hi, I am leaving on a trip soon, and would like to work on my WO project in my spare time during the evenings. Is there any way to develop WO on a laptop (1999 "Lombard" PowerBook G3)? I have access to MacOS X Server 1.0.1 and Mac OS X DP4. Is there a way to get WO 4.5 up and running based on this setup? I thought about setting up my powerbook in SCSI mode and installing OS X Server on it. Would this work (I recall that it won't install on the Lombard by iteslf)? Is OS X DP4's WO ProjectBuilder worth trying? Thanks in advance. Michael Deninger The University of Iowa College of Pharmacy Phone: (319) 335-6513 deninger@blue.weeg.uiowa.edu From dempseyj at apple.com Thu Jul 6 12:58:30 2000 From: dempseyj at apple.com (James Dempsey) Date: Thu Jul 6 11:58:30 2000 Subject: setMasterObject for master/detail WODisplayGroup In-Reply-To: <003d01bfe779$de3f6960$4bac2ac0@mt108> Message-ID: > public class Main extends WOComponent { > WODisplayGroup accountDisplayGroup; > WODisplayGroup billDisplayGroup; > > EOEnterpriseObject selection = > (EOEnterpriseObject)accountDisplayGroup.selectedObject(); > billDisplayGroup.setMasterObject(selection); > } It seems as if your code is just hanging out loose in your Main class. You may want to put it inside of a constructor: public Main(){ super(); EOEnterpriseObject selection = (EOEnterpriseObject)accountDisplayGroup.selectedObject(); billDisplayGroup.setMasterObject(selection); } I've never tried putting code such as that inside a Java initialization block (heaven forbid!), but the two display groups will be initialized by the time the call to super() returns. Another Note: You want to be sure that the billDisplayGroup (your detail display group) is set to Fetch On Load. (Either do it in the config panel in WebObjects Builder, or programatically). Doing so makes sure that whenever you change the master object, the display group will automatically fetch the related detail objects. Otherwise you need to manually tell the display group to fetch() (yuck!). Hope this helps. -James -- James Dempsey Apple iServices Training Apple Computer, Inc. dempsey@apple.com (408) 974-7817 > From: Spencer Miles > Date: Thu, 06 Jul 2000 11:41:58 -0700 > To: WebObjects Mailing List > Subject: setMasterObject for master/detail WODisplayGroup > > Hello, > I have two display groups in my main.wo component, accountDisplayGroup > which points to a table called Account, and billDisplayGroup which is a > Master/Detail group (Entity is 'Bill', Master Entity is 'Account', Detail > key is 'bills'). I'm not completely certain what I'm doing, but I'm > guessing that I need to set the masterObject for the billDisplayGroup equal > to the selectedObject in the accountDisplayGroup so that billDisplayGroup > knows which account we are using. The code i'm using is as follows: > > import com.apple.yellow.foundation.*; > import com.apple.yellow.webobjects.*; > import com.apple.yellow.eocontrol.*; > > public class Main extends WOComponent { > WODisplayGroup accountDisplayGroup; > WODisplayGroup billDisplayGroup; > > EOEnterpriseObject selection = > (EOEnterpriseObject)accountDisplayGroup.selectedObject(); > billDisplayGroup.setMasterObject(selection); > } > > When I compile i recieve the following error: > > Main.java:12: Identifier expected. > billDisplayGroup.setMasterObject(selection); > ^ > 1 error > > My guess is that Identifier is something like putting > (WODisplayGroup)billDisplayGroup.setMasterObject(selection); > But when I do that I recieve a type expected error. Could someone help me > out here? > Thanks a ton! > -Spencer Miles > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From dempseyj at apple.com Thu Jul 6 12:59:35 2000 From: dempseyj at apple.com (James Dempsey) Date: Thu Jul 6 11:59:35 2000 Subject: Localized resources In-Reply-To: <200007061838.OAA06928@zaphod.vienna.BLaCKSMITH.com> Message-ID: > NSBundle will always find a > global resource before a localized resource when searching for files. So, > if a global resource exists, there's no point in having a localized resource. Note that in a WebObjects application it is the WOResourceManager that is retrieving file-based resources. In my testing, WOResourceManager finds a localized resource BEFORE a global resource. -James -- James Dempsey Apple iServices Training Apple Computer, Inc. dempsey@apple.com (408) 974-7817 > From: "Carl E. Lindberg" > Reply-To: Carl_Lindberg@blacksmith.com > Date: Thu, 06 Jul 2000 14:38:58 -0400 > To: James Dempsey > Cc: Michael Bieri , webobjects@omnigroup.com > Subject: Re: Localized resources > > You wrote: >> Michael, >> >> There appears to be a limitation in Project Builder in which it will allow >> a resource to be localized OR global, but not both. > > ProjectBuilder does this for a reason -- NSBundle will always find a > global resource before a localized resource when searching for files. So, > if a global resource exists, there's no point in having a localized resource. > > >> Workaround #2 More elegant: >> Philosophy: Use the functionality that is provided to achieve the desired >> effect >> >> Make a language project for your global, default language. (In the US that >> might be English). Put all of your 'global' default items in there, and >> manage it like any other language. >> >> In your Session class, override setLanguages() so that it always appends >> your global language (in this case, the string "English") to the incoming >> array of languages. This way, whenever the language is set by either you or >> the framework, the default language is always at the end of the list as a >> 'catch-all'. >> >> In this scenario, a session always has a fallback language which serves as >> the global/default, and you can use Project Builder to manage those >> global/default resources since they too are stored in a language project. > > This is what I'd recommend. In GUI Cocoa apps, all of the languages > are typically searched for (the user just determines the order in > preferences), so in the end one version or another is always found. The > LocalizedHelloWorld example looks as though it removes all but one language > in its setLanguages() override, meaning every resource has to exist in that > language project for it to be found, losing all the benefits of a search > order. > > -Carl Lindberg > > _______________________________________________________________ > Carl Lindberg Carl_Lindberg@BLaCKSMITH.com (NeXTmail, MIME) > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From dempseyj at apple.com Thu Jul 6 13:01:57 2000 From: dempseyj at apple.com (James Dempsey) Date: Thu Jul 6 12:01:57 2000 Subject: boolean qualifier? In-Reply-To: <4.2.2.20000706122127.01392690@hecky.acns.nwu.edu> Message-ID: Jonathan, I would give the ol' "new Integer(1)" a try instead of "new Boolean(true)". I haven't tried it myself, but it would seem consistent with other behavior I've seen. I'd be interested to know if that works for you. -James -- James Dempsey Apple iServices Training Apple Computer, Inc. dempsey@apple.com (408) 974-7817 > From: Jonathan Rochkind > Date: Thu, 06 Jul 2000 12:22:22 -0500 > To: webobjects@omnigroup.com > Subject: boolean qualifier? > > How do I do an in memory sort on a boolean attribute? > > EOQualifier.qualifierWithQualifierFormat("attribute = true")? > Or > "attribute = %@", new NSArray(new Boolean(true))); > > Or some other ObjC-ism I can't guess? What's up? > > --Jonathan > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From michael at stb.nccom.com Thu Jul 6 13:04:01 2000 From: michael at stb.nccom.com (Michael Gersten) Date: Thu Jul 6 12:04:01 2000 Subject: Regarding Apple's decision to drop Objective C Message-ID: <3964D799.7C32D41F@getasia.com> This is a followup/comment on the Stepwise editorial, "Head for the Ramparts". The brief summary: We've seen this before. Or: Fool me once, shame on you; fool me twice, you won't fool me a third time. The Stepwise article points this out: Objective C is not being supplanted by java -- Java is not becoming the main langauge, and objective-C the secondary; OBJECTIVE-C IS BEING THROWN OUT! No more web objects development in Objective C. AND EOF IS BEING GIVEN TO THE WOF PEOPLE, NOT THE DESKTOP PEOPLE. That shout, again: control of EOF is being given to the WOF people; WOF wil be java-ONLY in 5.0. That means no objective C EOF anywhere. Yes, objective C will still be around if you use Foundation/Appkit. But no EOF or DBKit. Anyone want to write a database app around indexing kit? Think about this. If Apple really wanted to abandon Objective C, because of the cost of maintaining it, it would be nice if they gave us a release with functioning ObjC and Java, and the conversion scripts; using that release (call it 5.0), we could take as much time as needed to get the conversion done. Some bugs will be uncovered by this, of course; an interm/patch (5.5) would come out. In 6.0, objective C would all be gone, people had a working version to transfer their stuff over, everyone is happy. Instead, in 4.5 we have a buggy java client that cannot handle inherited EO's. We have a java development environment that is GARBAGE FOR DEBUGGING. It cannot tell what file you are using for a class when you click on the file (if there are duplicate names, such as a client side and a parent side class) or when a breakpoint triggers. I get a number of Fatal exception: java.io.IOException: Pipe broken APPLICATION EXIT when I try to debug the java-server side of a java client app. Try using the 'print object' button -- it generate 'print * ', which jdb doesn't like (the space between the * and the varname confuse it). I have yet to even be able to examine something in jdb; I get messages back saying that there is no symbol 'this' in the current context (yes, this is from jdb, not gdb.). So, in 4.5, we only have objective C as a reliable development environment. Yet in 5.0, we have to give it up immediately, no chance for fixes/problems to be identified. As annoying as this is, we've seen it before. Not from Apple, from Steve Jobs. At NeXT, Steve said that they would always support black hardware purchasers better than intel hardware purchases. That was true for the life of NeXTStep; but OpenStep was different. To go from 3.2 NS to 4.2 OS required that black hardware people purchase the same expensive CD that intel people purchased. No price break of any kind. You couldn't use 4.2 user (cheap, bug fixes) with 3.2 developer. So for some of us (me at least, some others that I knew) there was no upgrade to openstep. Back in the black hardware days, my machine was academic. I also, thinking I was smart, purchased the reinstallation floppies figuring that I 'd have a backup of the system in case I needed it. Well, sure enough, I did. Later, when I went to play with DBKit, I found that the reinstallation floppies did not include sybase. NeXT would not help me out in any way. I had a system with a nice database programming system, but no usable database; they had adaptors for flat files, but refused to release it. That was "screw you" number one; the "no upgrade to openstep" (which, incidently, included EOF which was DBKit's replacement) was number two. I won't allow a third. Jobs has dropped software before. Way back when, there was a real nice word processor called "WriteNow". When NeXTStep went multi-platform, WriteNow was removed and given to a commercial company. Now granted, giving software to the community was unfashionable back then, but if that had been done, the software would still be around, bug fixed, and working. Heck, even if the rumors were true and it was in 68030 assembly, it would have been ported to the power PC and fixed up, if not actually C'd. Now, they are dropping, what? HyperCard? Stepwise reports: << One hacker received a flat "no" when he asked if Apple would release HyperCard into the open-source arena. Apple cited the time and effort it would take to tidy everything up in HyperCard and manage the project. Apple would prefer to allocate such resources to new projects, particularly Mac OS X. This opened up a larger open-source debate, prompting Glass to state that, "Open source will not be a dumping ground for dead products." >> It takes all of 20 minutes to do a 'make clean; gnutar -cz' to put something into open source, and let someone else manage it. It doesn't cost Apple anything to give their old, useless (to them) software away, and it makes them look better to developers (who know that their old systems will never go away completely). There's a bunch more in the stepwise article, but there's this thing (talking about licensing for NT): > In the end, Apple has put the question entirely to rest post WWDC. > The WebObjects 4.5 licenses have been amended such that you are > no longer allowed to run any other Cocoa applications other than > those provided by Apple for development. The Yellow Box > runtime-license that was available ($3000/10 seats) is > discontinued effective September 9, 2000. Does this mean that I cannot develop a desktop app for YB/NT, and sell it? Even if I tell people that they have to purchase a $700 unlimited WOF 4.5 package as well? (Our program is, eventually, going to be a $500/month license sort of thing, so we can afford a $700 per customer overhead; but it won't be ready by Sep 9 :-). And it's still bad no matter how you look at it. Consider our application, at $500 per month, is expected to go to 1000 customers the first year (vertical market). That's $6000 per year, 1000 customers, that $6 million the first year alone. That's not a small software application. We need to be able to do distributed display -- running the program and data from a central site, displaying into a remote terminal. Java client would have been perfect, but because of the inherited EO bug we need the 5.0 fixes. We can't use Objective C in 5.0, and java debugging in 4.5 isn't good enough for use. So with no upgrade path, and no workability now, we have to use something like WinFrame/Terminal Server instead. Folks, this is a call for action. Send mail to leadership@apple.com, or maybe try some other addresses (steve.jobs@apple.com might go somewhere). Apple will listen to its developers if we make a big enough stink. And if they don't, then this is a call for action for GnuStep and GnuStep Web; lets port them to NT and solaris. It occurs to me that the Java to Objective-c Bridging Specifications was kept in a .jobs file; now that that bridging wil be going away, presumably the .jobs files will go away as well. Perhaps this is a sign -- what would it take for a shareholder (I'm not one) to file a motion to replace Jobs as head of Apple with someone else? It doesn't matter how good of a salesman is at the head if there are no programmers writing for it. Michael (yes, I'm upset. And yes, I waited the hour or two before posting. Heck, it's been almost a full week since reading the stepwise article, and I'm STILL upset about it.) From ricardy.banks at lmco.com Thu Jul 6 13:07:45 2000 From: ricardy.banks at lmco.com (Banks, Ricardy) Date: Thu Jul 6 12:07:45 2000 Subject: WOComponent URL Message-ID: <079B626B05A0D3118B1000508B0EA5E9F81FB9@emss04m05.ems.lmco.com> How can one get the generated URL of a WOComponent page in a given session? Thanks, Ricardy From dempseyj at apple.com Thu Jul 6 13:19:02 2000 From: dempseyj at apple.com (James Dempsey) Date: Thu Jul 6 12:19:02 2000 Subject: unableToSetNilForKey In-Reply-To: Message-ID: What does the object inherit from? (There is a difference between NSKeyValueCoding which does not have unableToSetNullForKey, and EOKeyValueCoding, which does). In Java 4.5 NSObject implements the former, EOCustomObject the latter. And I'm sure that you've double checked the method signature against EOKeyValueCoding in the JavaBrowser app. (Between the docs and the Java Browser, Java Broswer's reading the runtime and is therefore always right). public void unableToSetNullForKey(String key); What behavior are you getting when it tries to set the value? Just an exception being thrown? (which implies the super-classes' version is getting called) Could the entity of your EO class in the model file still be set to EOGenericRecord? This would cause no custom logic in your custom EO class to be called since the model file is telling EOF to use EOGenericRecord instead of your custom class. I've done *that* a few times... -James -- James Dempsey Apple iServices Training Apple Computer, Inc. dempsey@apple.com (408) 974-7817 > From: "Brian P. Marquis" > Date: Wed, 05 Jul 2000 14:34:51 -0500 > To: "Multiple recipients of list (E-mail)" > Subject: RE: unableToSetNilForKey > > I've made the following changes to my class, but still get the > NSInvalidArgumentException, and the println never gets executed. Wierd. Any > ideas? > > public void unableToSetNullForKey( String keyname ) { > System.out.println( keyname + "\n" ); > if ( keyname.equals("qty") ) { > qty = 0; > } else { > super.unableToSetNullForKey( keyname ); > } > } > > >> -----Original Message----- >> From: Brian P. Marquis [SMTP:bmarquis@ogse.com] >> Sent: Wednesday, July 05, 2000 2:05 PM >> To: Multiple recipients of list (E-mail) >> Subject: unableToSetNilForKey >> >> I need to be able to override unableToSetNilForKey, but I want the default >> behavoir for the fields I'm not checking. I tried >> super.unableToSetNilForKey( keyname ); but that method doesn't exist in >> EOCustomObject. >> >> public void unableToSetNilForKey(String keyname) { >> if ( keyname.equals("qty") ) { >> qty = 0; >> } else { >> // not sure what goes here >> } >> } >> _______________________________________________ >> WebObjects mailing list >> WebObjects@omnigroup.com >> http://www.omnigroup.com/mailman/listinfo/webobjects > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From j-rochkind at nwu.edu Thu Jul 6 13:22:13 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Thu Jul 6 12:22:13 2000 Subject: WOComponent URL In-Reply-To: <079B626B05A0D3118B1000508B0EA5E9F81FB9@emss04m05.ems.lmco. com> Message-ID: <4.2.2.20000706142102.02125928@hecky.acns.nwu.edu> Not very easily. One thing to keep in mind that is that your components don't have URLs. Instead what has a URL is a particular action method in a particular component---that action method returns a component, true, but the URL is really for the action method. Accessing the URL again will execute the action method again, not just return the right component. So, anyway, how do you get this URL? If you need it for javascript, see the WOActionURL reuseable component. I forget if this is in the WOExtensions framework or has finally been moved to WebObjects framework in 4.5. But it will output in your .html the proper URL for a particular action method in your component. If you need to get this URL in code, not just output it in the .html for the javascript, this is harder. I was in the middle of figuring out how to do this, and thought I was close to doing it, but then ran out of time and had to work on something else. Maybe someone else can suggest something. Good luck. --Jonathan At 03:05 PM 7/6/2000 -0400, you wrote: >How can one get the generated URL of a WOComponent page in a given session? > >Thanks, >Ricardy >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From max at netstruxr.com Thu Jul 6 13:32:52 2000 From: max at netstruxr.com (Max Muller) Date: Thu Jul 6 12:32:52 2000 Subject: EOF errors Message-ID: <0FXA0081RJFU3V@mta5.snfc21.pbi.net> > Is it common for EOF to have exceptions like this? Yes. Just kidding ;) >I'm using SQL server, > two instances of the WO app were running, and these apps were NOT handling > concurrent requests. The apps just do a very small single insert per request: Looks like the sequences haven't been setup for the database you are using (or tables or stored procedures). I haven't worked with SQL Server so I'm not familiar with how it generates primary keys, but that looks to be your issue. Open EOModeler and click the SQL button for that entity. Look for the SQL that would be used to reset a sequence or insert into a primary key table. Hope this helps. Regards, Max >
NSInternalInconsistencyException:
> _primaryKeyForObject:: EODatabaseContext 0xc98810 is unable to obtain a 
> primary key for FNTransaction object 0xc8fc00
> 	at java.lang.Throwable.<init>(Compiled Code)
> 	at java.lang.Exception.<init>(Compiled Code)
> 	at java.lang.RuntimeException.<init>(Compiled Code)
> 	at com.apple.yellow.foundation.NSException.<init>(Compiled 
> Code)
> 	at FNDatabaseManager.logTransaction(Compiled Code)
> 	at FNRequestManager.handleRequestWithResponse(Compiled Code) 
> 	at DirectAction.defaultAction(Compiled Code)
> 
> > From j-rochkind at nwu.edu Thu Jul 6 13:42:10 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Thu Jul 6 12:42:10 2000 Subject: EOF errors In-Reply-To: <0FXA0081RJFU3V@mta5.snfc21.pbi.net> Message-ID: <4.2.2.20000706144051.02150c70@hecky.acns.nwu.edu> Nope, nope. With MS SQL Server you don't need to do anything like that (set up sequences or anything. SQL Server doesn't have sequences, alas. Wish it did.) One thing you DO need to do is NOT have the "identity" property set on any of your columns. Except I don't think this is the problem, but I'm not sure. I think EOF also doesn't know how to generate it's own compound primary keys---if the Entity in question has a compound primary key (more than one attribute is set as primary key), then you have to take special measures. Maybe that's the problem? That's all I can think of. At 12:29 PM 7/6/2000 -0700, you wrote: > > Is it common for EOF to have exceptions like this? > >Yes. Just kidding ;) > > >I'm using SQL server, > > two instances of the WO app were running, and these apps were NOT >handling > > concurrent requests. The apps just do a very small single insert >per request: > >Looks like the sequences haven't been setup for the database you are >using (or tables or stored procedures). I haven't worked with SQL >Server so I'm not familiar with how it generates primary keys, but >that looks to be your issue. Open EOModeler and click the SQL button >for that entity. Look for the SQL that would be used to reset a >sequence or insert into a primary key table. Hope this helps. > >Regards, > Max > > >
NSInternalInconsistencyException:
> > _primaryKeyForObject:: EODatabaseContext 0xc98810 is unable to obtain a
> > primary key for FNTransaction object 0xc8fc00
> >       at java.lang.Throwable.<init>(Compiled Code)
> >       at java.lang.Exception.<init>(Compiled Code)
> >       at java.lang.RuntimeException.<init>(Compiled Code)
> >       at com.apple.yellow.foundation.NSException.<init>(Compiled
> > Code)
> >       at FNDatabaseManager.logTransaction(Compiled Code)
> >       at FNRequestManager.handleRequestWithResponse(Compiled Code)
> >       at DirectAction.defaultAction(Compiled Code)
> > 
> > > > >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From annie_morris at forum.cc.utexas.edu Thu Jul 6 13:48:27 2000 From: annie_morris at forum.cc.utexas.edu (annie_morris) Date: Thu Jul 6 12:48:27 2000 Subject: FrontBase EOAdaptor error Message-ID: <6AC4E20EED49D411941400D0B77E52F02C88B0@forum.cc.utexas.edu> Hi All, I have migrated my WO 4.5 application from a MacOSX Server to my Solaris 2.7 machine, running FrontBase 2.13. I have commented out the: include $(MAKEFILEDIR)/pdo-eoadaptor-linking.make FRAMEWORKS += FrontBaseEOAdaptor I am getting this error when I tried to compile it: ld warning: file /opt/Apple/Library/Frameworks/EOAccess.framework/Versions/B/EOAccess: required by /opt/Apple/Library/Frameworks/FrontBaseEOAdaptor.framework/FrontBaseEOAdapto r, not found I have made sure that NEXT_ROOT is /opt/Apple and that /opt/Apple/Library/Executables is in my path. Any pointers you have is greatly appreciated! Annie From max at netstruxr.com Thu Jul 6 13:48:55 2000 From: max at netstruxr.com (Max Muller) Date: Thu Jul 6 12:48:55 2000 Subject: WO Development on Lombard Powerbook Message-ID: <0FXA00F0RJS9CQ@mta6.snfc21.pbi.net> Hi, > I am leaving on a trip soon, and would like to work on my WO project > in my spare time during the evenings. Is there any way to develop WO > on a laptop (1999 "Lombard" PowerBook G3)? I have access to MacOS X > Server 1.0.1 and Mac OS X DP4. Is there a way to get WO 4.5 up and > running based on this setup? Yep. Might want to snag a copy of OSXS 1.2 though. Basicly checkout the excellent web page http://www.mulle-kybernetik.de/lombard.html for a complete run down of the installation. Pretty straight forward. Just a warning though the Lombard runs at 256 colors, BlueBox doesn't run at all and if you have a CD/DVD drive you won't be able to mount CDs. Other than that everything is peachy ;) > I thought about setting up my powerbook in SCSI mode and installing > OS X Server on it. Would this work (I recall that it won't install on > the Lombard by iteslf)? Maybe. Real issue is that OSXS's CD-ROM driver doesn't support the CD/DVD drive of the Lombard. >Is OS X DP4's WO ProjectBuilder worth trying? Not for WO dev. Regards, Max From pierce at twinforces.com Thu Jul 6 14:24:23 2000 From: pierce at twinforces.com (Pierce T. Wetter III) Date: Thu Jul 6 13:24:23 2000 Subject: Regarding Apple's decision to drop Objective C In-Reply-To: <3964D799.7C32D41F@getasia.com> Message-ID: > Stuff about Java having major problems in 4.0 and 4.5 My point of view: In the software industry, until you see it with your own eyes, you pretty much assume that things will remain broken. Java has some major limitations compared to Objective-C in WebObjects 4.0 and 4.5. So naturally, when we hear that Apple is forcing everyone to move to Java, that seems incredibly brain damaged. We can't really use Java now, at the minimum we have to use a mixture of Obj-C and Java. So that means that Apple is saying "all your web apps will no longer work". Naturally, we're all quite upset. Those of us who have used Java in other contexts are even more upset, Java has a ways to go. Apple could calm people down pretty easily by listing what they saw as the limitations of Java, and how they were fixing them in 5.0. If they did it right, they could spin it as new improved 5.0 features. Since they haven't done that, naturally, everyone is upset. Those of us in the software industry pretty much expect that since Java is broken, it will stay broken. Specifically: 1. Why not have "Why Wait" compiling instead of Just-In-Time compiling. SGI does it... WO apps are _server_ apps. There's not a lot of point to bytecode in a server app. 2. EOModeler should make two classes ala EOGenerator. 3. java.lang.String sucks eggs. Rancid ones. 4. Is my app still going to go away for 20 seconds while the garbage collector masterbates? I'd rather have 1 millisecond per page spent in retain/release then 20 seconds all at once... A pro Java data point: It takes .5 seconds for FrontBase to return my 10,000 rows I asked for and turn them into dictionarys for EOF. It takes EOF 10x that to turn them into objects (5 seconds). I heard that with the Hotspot stuff, an object can be allocated in 11 instructions. If 5.0 lets me get those 10,000 rows in 1 seconds total, I'd be more then happy to move to Java: 90% of the application time is spent in EOF. On the other hand, if EOF isn't faster in 5.0, then Apple has shot themselves in the foot. Why move to a language that doesn't offer them any actual benefits for server applications? Rumor I've heard: Apple is planning a 5.0 beta soon, so that people will see it actually working and not be so upset. My reaction: They shipped a WOAdaptor that was broken. I suspect the WOF group is getting farther and farther from their users. Even if 5.0 looks great, I'll be sceptical until a large site like the Apple Store is running on it, and in production. > Jobs has dropped software before. Way back when, there was a real nice word > processor called "WriteNow". WriteNow was always a commercial product and always owned by T/Maker it was dropped because it was written entirely in 68K assembly and T/Maker didn't really have that much interest in porting it. Note that they didn't port it to the powerPC on the mac... > > Now, they are dropping, what? HyperCard? Stepwise reports: > > << > One hacker received a flat "no" when he asked if Apple would release HyperCard > into the open-source arena. Apple cited the time and effort it would take to > tidy everything up in HyperCard and manage the project. Apple would prefer to > allocate such resources to new projects, particularly Mac OS X. > > This opened up a larger open-source debate, prompting Glass to state that, > "Open > source will not be a dumping ground for dead products." >>> > > It takes all of 20 minutes to do a 'make clean; gnutar -cz' to put something > into open source, and let someone else manage it. It doesn't cost Apple > anything > to give their old, useless (to them) software away, and it makes them look > better to developers (who know that their old systems will never go away > completely). Apple may have the open source religion, but that doesn't give them the right to publish other people's code. If they bought code or technology from someone else and used it in hypercard, it would take a significant amount of time to "clean" it. "make clean" doesn't search through the project heirarchy looking for purchased code. It takes a significant effort to move something as old as Hypercard from closed to open code. Not worth it for dead projects. Most people into that thing use SuperCard. In other words, on the mac side of things, Apple was getting beat up for dropping STREAMS from the tcp/ip stack in Mac OS X (Open Transport is STREAMS based). However, their streams code was provided by Mentat. If Apple "open sourced" open transport, if they didn't pull out the Mentat stuff, they would be responsible for all financial losses to Mentat, plus they would have undoubtedly violated various contracts. Part of what took so long to get Darwin out was that that Apple had to trace down the source of every single component of NextStep so that that could isolate the parts that were proprietary to someone other then Apple. Pierce From pcwjiang at ihc.com Thu Jul 6 14:33:57 2000 From: pcwjiang at ihc.com (Wei Jiang) Date: Thu Jul 6 13:33:57 2000 Subject: Regarding Apple's decision to drop Objective C Message-ID: >>> "Pierce T. Wetter III" 07/06/00 02:23PM >>> > Stuff about Java having major problems in 4.0 and 4.5 My point of view: In the software industry, until you see it with your own eyes, you pretty much assume that things will remain broken. Java has some major limitations compared to Objective-C in WebObjects 4.0 and 4.5. So naturally, when we hear that Apple is forcing everyone to move to Java, that seems incredibly brain damaged. We can't really use Java now, at the minimum we have to use a mixture of Obj-C and Java. So that means that Apple is saying "all your web apps will no longer work". Naturally, we're all quite upset. Those of us who have used Java in other contexts are even more upset, Java has a ways to go. Apple could calm people down pretty easily by listing what they saw as the limitations of Java, and how they were fixing them in 5.0. If they did it right, they could spin it as new improved 5.0 features. Since they haven't done that, naturally, everyone is upset. Those of us in the software industry pretty much expect that since Java is broken, it will stay broken. Specifically: 1. Why not have "Why Wait" compiling instead of Just-In-Time compiling. SGI does it... WO apps are _server_ apps. There's not a lot of point to bytecode in a server app. 2. EOModeler should make two classes ala EOGenerator. 3. java.lang.String sucks eggs. Rancid ones. 4. Is my app still going to go away for 20 seconds while the garbage collector masterbates? I'd rather have 1 millisecond per page spent in retain/release then 20 seconds all at once... A pro Java data point: It takes .5 seconds for FrontBase to return my 10,000 rows I asked for and turn them into dictionarys for EOF. It takes EOF 10x that to turn them into objects (5 seconds). I heard that with the Hotspot stuff, an object can be allocated in 11 instructions. If 5.0 lets me get those 10,000 rows in 1 seconds total, I'd be more then happy to move to Java: 90% of the application time is spent in EOF. On the other hand, if EOF isn't faster in 5.0, then Apple has shot themselves in the foot. Why move to a language that doesn't offer them any actual benefits for server applications? Rumor I've heard: Apple is planning a 5.0 beta soon, so that people will see it actually working and not be so upset. My reaction: They shipped a WOAdaptor that was broken. I suspect the WOF group is getting farther and farther from their users. Even if 5.0 looks great, I'll be sceptical until a large site like the Apple Store is running on it, and in production. > Jobs has dropped software before. Way back when, there was a real nice word > processor called "WriteNow". WriteNow was always a commercial product and always owned by T/Maker it was dropped because it was written entirely in 68K assembly and T/Maker didn't really have that much interest in porting it. Note that they didn't port it to the powerPC on the mac... > > Now, they are dropping, what? HyperCard? Stepwise reports: > > << > One hacker received a flat "no" when he asked if Apple would release HyperCard > into the open-source arena. Apple cited the time and effort it would take to > tidy everything up in HyperCard and manage the project. Apple would prefer to > allocate such resources to new projects, particularly Mac OS X. > > This opened up a larger open-source debate, prompting Glass to state that, > "Open > source will not be a dumping ground for dead products." >>> > > It takes all of 20 minutes to do a 'make clean; gnutar -cz' to put something > into open source, and let someone else manage it. It doesn't cost Apple > anything > to give their old, useless (to them) software away, and it makes them look > better to developers (who know that their old systems will never go away > completely). Apple may have the open source religion, but that doesn't give them the right to publish other people's code. If they bought code or technology from someone else and used it in hypercard, it would take a significant amount of time to "clean" it. "make clean" doesn't search through the project heirarchy looking for purchased code. It takes a significant effort to move something as old as Hypercard from closed to open code. Not worth it for dead projects. Most people into that thing use SuperCard. In other words, on the mac side of things, Apple was getting beat up for dropping STREAMS from the tcp/ip stack in Mac OS X (Open Transport is STREAMS based). However, their streams code was provided by Mentat. If Apple "open sourced" open transport, if they didn't pull out the Mentat stuff, they would be responsible for all financial losses to Mentat, plus they would have undoubtedly violated various contracts. Part of what took so long to get Darwin out was that that Apple had to trace down the source of every single component of NextStep so that that could isolate the parts that were proprietary to someone other then Apple. Pierce _______________________________________________ WebObjects mailing list WebObjects@omnigroup.com http://www.omnigroup.com/mailman/listinfo/webobjects From j-rochkind at nwu.edu Thu Jul 6 14:41:04 2000 From: j-rochkind at nwu.edu (Jonathan Rochkind) Date: Thu Jul 6 13:41:04 2000 Subject: Regarding Apple's decision to drop Objective C In-Reply-To: References: <3964D799.7C32D41F@getasia.com> Message-ID: <4.2.2.20000706154138.02165968@hecky.acns.nwu.edu> At 01:23 PM 7/6/2000 -0700, you wrote: > Apple could calm people down pretty easily by listing what they saw as the >limitations of Java, and how they were fixing them in 5.0. If they did it >right, they could spin it as new improved 5.0 features. Perhaps most importantly, as someone that right now codes exclusively in Java anyway (I'm the enemy!), a decent debugger that works with Java is SORELY needed. Debugging my apps, especially weird stuff with EOF, is a incredibly huge time drain because of the lack of a decent debugger. If I had a debugger that actually worked, and could trace not only my own code but through framework code too, that would be incredible. > Since they haven't done that, naturally, everyone is upset. Those of us in >the software industry pretty much expect that since Java is broken, it will >stay broken. > > Specifically: > > 1. Why not have "Why Wait" compiling instead of Just-In-Time compiling. >SGI does it... WO apps are _server_ apps. There's not a lot of point to >bytecode in a server app. > > 2. EOModeler should make two classes ala EOGenerator. > > 3. java.lang.String sucks eggs. Rancid ones. > > 4. Is my app still going to go away for 20 seconds while the garbage >collector masterbates? I'd rather have 1 millisecond per page spent in >retain/release then 20 seconds all at once... > > A pro Java data point: > > It takes .5 seconds for FrontBase to return my 10,000 rows I asked for >and turn them into dictionarys for EOF. It takes EOF 10x that to turn them >into objects (5 seconds). I heard that with the Hotspot stuff, an object can >be allocated in 11 instructions. If 5.0 lets me get those 10,000 rows in 1 >seconds total, I'd be more then happy to move to Java: 90% of the >application time is spent in EOF. > > On the other hand, if EOF isn't faster in 5.0, then Apple has shot >themselves in the foot. Why move to a language that doesn't offer them any >actual benefits for server applications? > > Rumor I've heard: > > Apple is planning a 5.0 beta soon, so that people will see it actually >working and not be so upset. > > My reaction: > > They shipped a WOAdaptor that was broken. I suspect the WOF group is >getting farther and farther from their users. Even if 5.0 looks great, I'll >be sceptical until a large site like the Apple Store is running on it, and >in production. > > > > > Jobs has dropped software before. Way back when, there was a real nice word > > processor called "WriteNow". > > WriteNow was always a commercial product and always owned by T/Maker it >was dropped because it was written entirely in 68K assembly and T/Maker >didn't really have that much interest in porting it. Note that they didn't >port it to the powerPC on the mac... > > > > Now, they are dropping, what? HyperCard? Stepwise reports: > > > > << > > One hacker received a flat "no" when he asked if Apple would release > HyperCard > > into the open-source arena. Apple cited the time and effort it would > take to > > tidy everything up in HyperCard and manage the project. Apple would > prefer to > > allocate such resources to new projects, particularly Mac OS X. > > > > This opened up a larger open-source debate, prompting Glass to state that, > > "Open > > source will not be a dumping ground for dead products." > >>> > > > > It takes all of 20 minutes to do a 'make clean; gnutar -cz' to put > something > > into open source, and let someone else manage it. It doesn't cost Apple > > anything > > to give their old, useless (to them) software away, and it makes them look > > better to developers (who know that their old systems will never go away > > completely). > > Apple may have the open source religion, but that doesn't give them the >right to publish other people's code. > > If they bought code or technology from someone else and used it in >hypercard, it would take a significant amount of time to "clean" it. "make >clean" doesn't search through the project heirarchy looking for purchased >code. It takes a significant effort to move something as old as Hypercard >from closed to open code. Not worth it for dead projects. Most people into >that thing use SuperCard. > > In other words, on the mac side of things, Apple was getting beat up for >dropping STREAMS from the tcp/ip stack in Mac OS X (Open Transport is >STREAMS based). However, their streams code was provided by Mentat. If Apple >"open sourced" open transport, if they didn't pull out the Mentat stuff, >they would be responsible for all financial losses to Mentat, plus they >would have undoubtedly violated various contracts. > > Part of what took so long to get Darwin out was that that Apple had to >trace down the source of every single component of NextStep so that that >could isolate the parts that were proprietary to someone other then Apple. > >Pierce > >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects From kwuolle at ceiss.org Thu Jul 6 14:44:14 2000 From: kwuolle at ceiss.org (Kyle Wuolle) Date: Thu Jul 6 13:44:14 2000 Subject: Regarding Apple's decision to drop Objective C Message-ID: <7F629D3E76A2D3118F1C00508B73057712D69D@elara.ceiss.org> Help is on the way... There is a module / add-on for debugging java using the GDB coming out shortly... My College instructor is working on it over the summer. > Apple could calm people down pretty easily by listing what they saw as the >limitations of Java, and how they were fixing them in 5.0. If they did it >right, they could spin it as new improved 5.0 features. Perhaps most importantly, as someone that right now codes exclusively in Java anyway (I'm the enemy!), a decent debugger that works with Java is SORELY needed. Debugging my apps, especially weird stuff with EOF, is a incredibly huge time drain because of the lack of a decent debugger. If I had a debugger that actually worked, and could trace not only my own code but through framework code too, that would be incredible. > Since they haven't done that, naturally, everyone is upset. Those of us in >the software industry pretty much expect that since Java is broken, it will >stay broken. > > Specifically: > > 1. Why not have "Why Wait" compiling instead of Just-In-Time compiling. >SGI does it... WO apps are _server_ apps. There's not a lot of point to >bytecode in a server app. > > 2. EOModeler should make two classes ala EOGenerator. > > 3. java.lang.String sucks eggs. Rancid ones. > > 4. Is my app still going to go away for 20 seconds while the garbage >collector masterbates? I'd rather have 1 millisecond per page spent in >retain/release then 20 seconds all at once... > > A pro Java data point: > > It takes .5 seconds for FrontBase to return my 10,000 rows I asked for >and turn them into dictionarys for EOF. It takes EOF 10x that to turn them >into objects (5 seconds). I heard that with the Hotspot stuff, an object can >be allocated in 11 instructions. If 5.0 lets me get those 10,000 rows in 1 >seconds total, I'd be more then happy to move to Java: 90% of the >application time is spent in EOF. > > On the other hand, if EOF isn't faster in 5.0, then Apple has shot >themselves in the foot. Why move to a language that doesn't offer them any >actual benefits for server applications? > > Rumor I've heard: > > Apple is planning a 5.0 beta soon, so that people will see it actually >working and not be so upset. > > My reaction: > > They shipped a WOAdaptor that was broken. I suspect the WOF group is >getting farther and farther from their users. Even if 5.0 looks great, I'll >be sceptical until a large site like the Apple Store is running on it, and >in production. > > > > > Jobs has dropped software before. Way back when, there was a real nice word > > processor called "WriteNow". > > WriteNow was always a commercial product and always owned by T/Maker it >was dropped because it was written entirely in 68K assembly and T/Maker >didn't really have that much interest in porting it. Note that they didn't >port it to the powerPC on the mac... > > > > Now, they are dropping, what? HyperCard? Stepwise reports: > > > > << > > One hacker received a flat "no" when he asked if Apple would release > HyperCard > > into the open-source arena. Apple cited the time and effort it would > take to > > tidy everything up in HyperCard and manage the project. Apple would > prefer to > > allocate such resources to new projects, particularly Mac OS X. > > > > This opened up a larger open-source debate, prompting Glass to state that, > > "Open > > source will not be a dumping ground for dead products." > >>> > > > > It takes all of 20 minutes to do a 'make clean; gnutar -cz' to put > something > > into open source, and let someone else manage it. It doesn't cost Apple > > anything > > to give their old, useless (to them) software away, and it makes them look > > better to developers (who know that their old systems will never go away > > completely). > > Apple may have the open source religion, but that doesn't give them the >right to publish other people's code. > > If they bought code or technology from someone else and used it in >hypercard, it would take a significant amount of time to "clean" it. "make >clean" doesn't search through the project heirarchy looking for purchased >code. It takes a significant effort to move something as old as Hypercard >from closed to open code. Not worth it for dead projects. Most people into >that thing use SuperCard. > > In other words, on the mac side of things, Apple was getting beat up for >dropping STREAMS from the tcp/ip stack in Mac OS X (Open Transport is >STREAMS based). However, their streams code was provided by Mentat. If Apple >"open sourced" open transport, if they didn't pull out the Mentat stuff, >they would be responsible for all financial losses to Mentat, plus they >would have undoubtedly violated various contracts. > > Part of what took so long to get Darwin out was that that Apple had to >trace down the source of every single component of NextStep so that that >could isolate the parts that were proprietary to someone other then Apple. > >Pierce > >_______________________________________________ >WebObjects mailing list >WebObjects@omnigroup.com >http://www.omnigroup.com/mailman/listinfo/webobjects _______________________________________________ WebObjects mailing list WebObjects@omnigroup.com http://www.omnigroup.com/mailman/listinfo/webobjects From ricardo at mpv.com Thu Jul 6 14:48:33 2000 From: ricardo at mpv.com (Ricardo J. Parada) Date: Thu Jul 6 13:48:33 2000 Subject: Regarding Apple's decision to drop Objective C In-Reply-To: Message-ID: Any clues as to when we can expect WebObjects 5.0 seeds? :-) From pierce at twinforces.com Thu Jul 6 14:53:15 2000 From: pierce at twinforces.com (Pierce T. Wetter III) Date: Thu Jul 6 13:53:15 2000 Subject: Regarding Apple's decision to drop Objective C In-Reply-To: <4.2.2.20000706154138.02165968@hecky.acns.nwu.edu> Message-ID: on 7/6/00 1:43 PM, Jonathan Rochkind at j-rochkind@nwu.edu wrote: > At 01:23 PM 7/6/2000 -0700, you wrote: >> Apple could calm people down pretty easily by listing what they saw as the >> limitations of Java, and how they were fixing them in 5.0. If they did it >> right, they could spin it as new improved 5.0 features. > > Perhaps most importantly, as someone that right now codes exclusively in > Java anyway (I'm the enemy!), a decent debugger that works with Java is > SORELY needed. > > Debugging my apps, especially weird stuff with EOF, is a incredibly huge > time drain because of the lack of a decent debugger. If I had a debugger > that actually worked, and could trace not only my own code but through > framework code too, that would be incredible. You're not the enemy. Bugs are the enemy. I'd use Java if I could, but as long as my apps run better in Obj-C and I'm more productive in ObjC, I'll use that. That's the number one reason all of us ObjC WO people are screaming about ObjC leaving. ObjC works, Java doesn't (try to fix the scheduler in 4.5 using pure java), and we're supposed to be happy? Pierce From ghopson at novazen.com Thu Jul 6 15:08:01 2000 From: ghopson at novazen.com (Geoff Hopson) Date: Thu Jul 6 14:08:01 2000 Subject: Regarding Apple's decision to drop Objective C Message-ID: <200007062106.OAA19587@scyther.omnigroup.com> I seem to remember Ernie Prabhakar trying to petition NeXT/Apple back in the past, and a quick search revealed the following article...the last paragraph caught my eye. http://www.omnigroup.com/OldLook/MailArchive/MacOSX-talk/1997/0003.html In the UK, we call this "poacher turned gamekeeper".....maybe Ernie should get a petition from developers, just as he was advocating back in 1997...or set something up so that he, now he is head of Product Marketing for WebObjects, can listen to us WO/EOF developers. Apologies for this not being a "dev" post, but I couldn't resist :-) And apologies to Ernie for raking over the past like this. But please listen and hear us! geoff > > This is a followup/comment on the Stepwise editorial, "Head for the Ramparts". > The brief summary: We've seen this before. Or: Fool me once, shame on you; fool > me twice, you won't fool me a third time. > > The Stepwise article points this out: > Objective C is not being supplanted by java -- Java is not becoming the main > langauge, and objective-C the secondary; OBJECTIVE-C IS BEING THROWN OUT! No > more web objects development in Objective C. AND EOF IS BEING GIVEN TO THE WOF > PEOPLE, NOT THE DESKTOP PEOPLE. > > That shout, again: control of EOF is being given to the WOF people; WOF wil be > java-ONLY in 5.0. That means no objective C EOF anywhere. > > Yes, objective C will still be around if you use Foundation/Appkit. But no EOF > or DBKit. Anyone want to write a database app around indexing kit? > > Think about this. If Apple really wanted to abandon Objective C, because of the > cost of maintaining it, it would be nice if they gave us a release with > functioning ObjC and Java, and the conversion scripts; using that release (call > it 5.0), we could take as much time as needed to get the conversion done. Some > bugs will be uncovered by this, of course; an interm/patch (5.5) would come out. > In 6.0, objective C would all be gone, people had a working version to transfer > their stuff over, everyone is happy. > > Instead, in 4.5 we have a buggy java client that cannot handle inherited EO's. > We have a java development environment that is GARBAGE FOR DEBUGGING. It cannot > tell what file you are using for a class when you click on the file (if there > are duplicate names, such as a client side and a parent side class) or when a > breakpoint triggers. I get a number of > Fatal exception: java.io.IOException: Pipe broken APPLICATION EXIT > > when I try to debug the java-server side of a java client app. Try using the > 'print object' button -- it generate 'print * ', which jdb doesn't > like (the space between the * and the varname confuse it). I have yet to even be > able to examine something in jdb; I get messages back saying that there is no > symbol 'this' in the current context (yes, this is from jdb, not gdb.). > > So, in 4.5, we only have objective C as a reliable development environment. Yet > in 5.0, we have to give it up immediately, no chance for fixes/problems to be > identified. > > As annoying as this is, we've seen it before. Not from Apple, from Steve Jobs. > At NeXT, Steve said that they would always support black hardware purchasers > better than intel hardware purchases. That was true for the life of NeXTStep; > but OpenStep was different. To go from 3.2 NS to 4.2 OS required that black > hardware people purchase the same expensive CD that intel people purchased. No > price break of any kind. You couldn't use 4.2 user (cheap, bug fixes) with 3.2 > developer. So for some of us (me at least, some others that I knew) there was no > upgrade to openstep. > > Back in the black hardware days, my machine was academic. I also, thinking I was > smart, purchased the reinstallation floppies figuring that I 'd have a backup of > the system in case I needed it. Well, sure enough, I did. Later, when I went to > play with DBKit, I found that the reinstallation floppies did not include > sybase. NeXT would not help me out in any way. I had a system with a nice > database programming system, but no usable database; they had adaptors for flat > files, but refused to release it. That was "screw you" number one; the "no > upgrade to openstep" (which, incidently, included EOF which was DBKit's > replacement) was number two. I won't allow a third. > > Jobs has dropped software before. Way back when, there was a real nice word > processor called "WriteNow". When NeXTStep went multi-platform, WriteNow was > removed and given to a commercial company. Now granted, giving software to the > community was unfashionable back then, but if that had been done, the software > would still be around, bug fixed, and working. Heck, even if the rumors were > true and it was in 68030 assembly, it would have been ported to the power PC and > fixed up, if not actually C'd. > > Now, they are dropping, what? HyperCard? Stepwise reports: > > << > One hacker received a flat "no" when he asked if Apple would release HyperCard > into the open-source arena. Apple cited the time and effort it would take to > tidy everything up in HyperCard and manage the project. Apple would prefer to > allocate such resources to new projects, particularly Mac OS X. > > This opened up a larger open-source debate, prompting Glass to state that, "Open > source will not be a dumping ground for dead products." > >> > > It takes all of 20 minutes to do a 'make clean; gnutar -cz' to put something > into open source, and let someone else manage it. It doesn't cost Apple anything > to give their old, useless (to them) software away, and it makes them look > better to developers (who know that their old systems will never go away > completely). > > There's a bunch more in the stepwise article, but there's this thing (talking > about licensing for NT): > > > In the end, Apple has put the question entirely to rest post WWDC. > > The WebObjects 4.5 licenses have been amended such that you are > > no longer allowed to run any other Cocoa applications other than > > those provided by Apple for development. The Yellow Box > > runtime-license that was available ($3000/10 seats) is > > discontinued effective September 9, 2000. > > Does this mean that I cannot develop a desktop app for YB/NT, and sell it? Even > if I tell people that they have to purchase a $700 unlimited WOF 4.5 package as > well? (Our program is, eventually, going to be a $500/month license sort of > thing, so we can afford a $700 per customer overhead; but it won't be ready by > Sep 9 :-). > > And it's still bad no matter how you look at it. Consider our application, at > $500 per month, is expected to go to 1000 customers the first year (vertical > market). That's $6000 per year, 1000 customers, that $6 million the first year > alone. That's not a small software application. We need to be able to do > distributed display -- running the program and data from a central site, > displaying into a remote terminal. Java client would have been perfect, but > because of the inherited EO bug we need the 5.0 fixes. We can't use Objective C > in 5.0, and java debugging in 4.5 isn't good enough for use. So with no upgrade > path, and no workability now, we have to use something like WinFrame/Terminal > Server instead. > > Folks, this is a call for action. Send mail to leadership@apple.com, or maybe > try some other addresses (steve.jobs@apple.com might go somewhere). Apple > will > listen to its developers if we make a big enough stink. And if they don't, then > this is a call for action for GnuStep and GnuStep Web; lets port them to NT and > solaris. > > It occurs to me that the Java to Objective-c Bridging Specifications was kept in > a .jobs file; now that that bridging wil be going away, presumably the .jobs > files will go away as well. Perhaps this is a sign -- what would it take for a > shareholder (I'm not one) to file a motion to replace Jobs as head of Apple with > someone else? It doesn't matter how good of a salesman is at the head if there > are no programmers writing for it. > > Michael > > (yes, I'm upset. And yes, I waited the hour or two before posting. Heck, it's > been almost a full week since reading the stepwise article, and I'm STILL upset > about it.) > _______________________________________________ > EOF mailing list > EOF@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/eof > > From piers.walter at ilink.de Thu Jul 6 15:14:03 2000 From: piers.walter at ilink.de (Piers Uso Walter) Date: Thu Jul 6 14:14:03 2000 Subject: WO Development on Lombard Powerbook In-Reply-To: Message-ID: <0007062312.AA4388745@eric> Michael Deninger wrote: > Hi, > > I am leaving on a trip soon, and would like to work on my WO project > in my spare time during the evenings. Is there any way to develop WO > on a laptop (1999 "Lombard" PowerBook G3)? I have access to MacOS X > Server 1.0.1 and Mac OS X DP4. Is there a way to get WO 4.5 up and > running based on this setup? I'm running Mac OS X Server 1.2 / WO 4.0 on a 1999 "Lombard" PowerBook G3 and am fairly satisfied. I haven't done much with WO 4.5 yet, but it definitely seems to run as well. There are some problematic issues though, due to the fact that this is non-supported hardware. These problems are detailed in the following (somewhat dated) text that I wrote in January: I'll start with the installation procedures Hardware / Software The following pertains to the 1999 "Lombard" PowerBook G3 (bronze keyboard) and Mac OS X Server 1.2 (full version) only. Mac OS X Server 1.0.x dies NOT work on this PowerBook model (but supposedly on older models). I don't know if my setup would work on older G3 PowerBooks, and I've been led to believe that X Server 1.2 will NOT run on the current PowerBooks (Pismo). Judging from the problems of G4 machines and the X Server 1.2 update, I assume that you need the full OSXS version for this to work, I don't expect the combo of Mac OS X Server 1.0 + 1.2 update to be installable on the PowerBook. Partitioning When using more than one partition: install Mac OS on the first, Mac OS X Server on one of the following partitions (or else the Mac's boot switching mechanism won't work). Installation of Mac OS X Server 1.2 When installing on a PowerBook, the Mac OS X Server Installer stops with the message that this hardware is not supported. One of the menus ("Configuration"? I forgot the exact name.) lets you specify that you'd like to install the software on non supported hardware. When you've done this, the Installer still shows the error message, but lets you continue [but don't even try this without a genuine CD-ROM drive - the DVD won't work]. Order of installation (for an installation without WebObjects, you don't need the second and third step): - Mac OS X Server 1.2 CD: install Mac OS X Server 1.2 according to manual (remember not to install this on the first partition if you also want to install Mac OS) - WebObjects 4.0.1 CD: install /Mac_OS_X_Server/WebObjectsDeveloper.mpkg - Mac OS X Server 1.2 CD: install /System/Installation/Packages/UpdateWO40_Developer.mpkg DO NOT install the WebObjects 4.0.1 Patch 2. Apple states: "The MacOS X Server version of WebObjects 4.0.1 Patch 2 is intended for versions of MacOS X Server earlier than 1.2. Users with 1.2 should NOT install this patch. ... We are dedicated to supporting our OS X Server 1.2 users. Please stay tuned to this list for further announcements." Which Mac OS version should be installed on the first partition? If you'd like to experiment: Mac OS X Developer Preview 2 (I haven't tried this). If it should be the latest and finest version: Mac OS 9 (I haven't tried this). If the BlueBox should also be able to boot from this partition: Mac OS 8.6 (that's the configuration I've got running). Installation of Mac OS 8.6 on the first partition If you've recently purchased your PowerBook, it includes a Mac OS 9 CD (and not a Mac OS 8.6 CD). You can, however, install Mac OS 8.6 from the Blue Box: - start BlueBox (the start disk is copied upon the first launch and the BlueBox hangs afterwards - starting with the second attempt, it'll work) - Copy everything from the BlueBox start disk to the first partition. - Choose the first partition in the start volume control panel, so that the BlueBox will boot from this partition in the future. - Copy the system disk folder from the utilities folder of the Mac partition of the Mac OS X Server 1.2 CD to the newly copied utilities folder on the first partition. - Copy the system disk extension from the system disk folder in the utilities folder on the first partition into the system folder on the first partition. Now on to supported and non supported features: Screen resolution of the external monitor You can't set the resolution of the external monitor under Mac OS X Server - it defaults to 640 x 480 pixel with 256 colors. You may however configure this under Mac OS: - Hook up the external monitor and start the PowerBook with Mac OS 8.6 from the first partition (press the alt key when booting). - Use the monitors & sound control panel or the control strip settings to configure both screens (e.g. internally 1024 x 768, thousands of colors and externally 1280 x 1024, 75 Hz, thousands of colors). - Use the system disk program to set the Mac OS X Server partition as start partition and restart the computer. - Mac OS X Server does not seem to support the simultaneous use of both screens, but at least the resolution of the external monitor has changed (other than the bit depth which still is at 256 colors). USB devices So far, I have not been able to get the external (USB-) keyboard or the external (USB-) mouse to work. I currently assume that Mac OS X Server 1.2 does not support USB on the PowerBook (the internal keyboard and trackpad are still ADB, from what I hear). DVD-ROM drive Other than the DVD-ROM drive of the blue and white G3 or the G4, the PowerBook's DVD-ROM drive is definitely not supported. It is not even detected as a CD-ROM drive. If you've got a DVD equipped PowerBook, you'll either have to borrow a CD-ROM drive, or purchase one as a replacement unit (expensive!). Power management There is no power management under Mac OS X Server 1.2. If your batteries run out of power, the PowerBook will just stop dead in its tracks. No nice and clean shutdown and no prior warning. Sometimes (about once a week) the mouse cursor stops and the PowerBook turns itself off without any warning. Since I'm usually not running on batteries, lack of power can't be the problem. I thought it might be a heat problem, but I'm not convinced. I have learned to live with having to do a disk check once in a while... Blue Box The Blue Box does NOT work on the PowerBook! In order to run Mac OS Software, I have to reboot the machine. Summary of my experiences of the first three weeks I find the lack of external keyboard and mouse hard to bear. The lack of the BlueBox is nasty as well, but not any worse than the last ten years under Nextstep / Openstep, so I can handle this. Everything else I can perfectly live with. All in all, I've had no problems so far (just like a guy who used my CD-ROM drive to install X Server 1.2 on his DVD equipped PowerBook). I have heard about other people that did have installation problems, though. You might want to check http://www.mulle-kybernetik.com/lombard.html as well. They have an article on installing Mac OS X Server 1.2 on Lombard 400 MHz Powerbooks with a DVD drive, copying the installation data over the ethernet. Regards Piers -- Piers Uso Walter ilink Kommunikationssysteme GmbH From R.Stephens at motorola.com Thu Jul 6 15:35:22 2000 From: R.Stephens at motorola.com (Stephens Robert-QA4078) Date: Thu Jul 6 14:35:22 2000 Subject: WO 3.5.1 on Windows2000 Message-ID: All, Odd as it sounds we have a WO 3.5.1 license that we're trying to run on a Windows2000 server. Has anyone been able to get this configuration operational? It looks like we can compile and start the launch just fine but we keep getting "no response from application" messages. It looks like WO4.5 applications have URL's that contain "localhost:1030/....." where the port changes each time an app is launched. Is this an issue related to IIS on Windows2000? thanks, Robert Stephens Motorola r.stephens@motorola.com   ph:847-632-5949 pager: 1109981@skytel.com 1501 W. Shure Drive IL65-3231AR Arlington Heights, IL 60004 From erik at x101.net Thu Jul 6 15:46:07 2000 From: erik at x101.net (Erik Doernenburg) Date: Thu Jul 6 14:46:07 2000 Subject: Two Apps - one Database -> Syncronization? Message-ID: HelveticaThe change notification framework = also forks off a thread for each instance it notifies. This can be less = than optimal if you have, say, 50 or 100 instances. I know that Marcus = M=FCller (znek@mulle-kybernetik.com) has experimented with UDP = broadcasts but there was a problem because the socket implementation in = Java cannot set the option SO_REUSEPORT (which, of course, is necessary = when multiple instances run on the same host.) Regarding the general discussion I would agree with the EOF team not to = include it into the WO framework. This area involves too many trade-offs = and most solutions exploit certain pecularities in the given = design/requirements to achieve efficiency for *that* case. Nonetheless = Apple could polish up Dave Neumann's framework and bundle it with WO... cheers, erik > From: "Paul R. Summermatter" <=20 > Date: 2000-07-06 00:08:07 +0100=20 > To: "'Gary Teter'" <=20 > Subject: RE: Two Apps - one Database -> Syncronization?=20 > Cc: "'webobjects@omnigroup.com'" <=20 > =20 > Gary,=20 > =20 > While I was very happy to see Dave be so generous as to offer = his=20 > time to provide a possible solution to the problem, I suspect even he = would=20 > admit his solution is not perfect. In particular, unless something = has=20 > changed, the code used direct actions to distribute notifications. = There is=20 > probably a significant amount of unecessary overhead associated with = this=20 > type of communication mechanism. Further, what if you have a tool = running=20 > that has nothing to do with WOF and cannot handle direct actions, but = needs=20 > to be notified of changes. Also, I do not recall any error checking = (ie,=20 > what happens if one of the other app instances does not get a = notification=20 > because of a communication failure). For these and other reasons, I = think=20 > Apple needs to put some more effort into addressing this issue.=20 > =20 > Regards,=20 > Paul=20 > =20 > [ -----Original Message-----=20 > [ From: Gary Teter [mailto:bigdog@bulldogbeach.com]=20 > [ Sent: Tuesday, July 04, 2000 4:04 PM=20 > [ To: 'webobjects@omnigroup.com'=20 > [ Cc: Paul R. Summermatter; Daniel Bleisteiner=20 > [ Subject: Re: Two Apps - one Database -> Syncronization?=20 > [ =20 > [ =20 > [ on 7/4/00 12:43 PM, Paul R. Summermatter at =20 > [ paulrs@lgs-systems.com wrote:=20 > [ =20 > [ > This is a major issue that needs addressing by Apple. Many of us=20= > [ > who have dealt with large projects or projects which =20 > [ require up to the=20 > [ > second data synchronization have endeavored to build =20 > [ various flavors of=20 > [ > distributed notification servers to deal with this problem =20 > [ (I've done this=20 > [ > twice now, once in objective-c and once in java). While I =20 > [ have tremendous=20 > [ > respect for Eric Noyeau and I have yet to read his latest =20 > [ treatise on this=20 > [ > subject, I respectfully diagree with him on the subject of =20 > [ distributed=20 > [ > notification, and I truly believe that some form of =20 > [ distributed notification=20 > [ > is the appropriate solution for this problem. That is, =20 > [ everytime an object=20 > [ > is inserted/updated/deleted in one app instance, all other =20 > [ interested app=20 > [ > instances are immediately notified of this modification in =20 > [ the object graph.=20 > [ > Many web app server vendors offer this as a feature, and I =20 > [ think WOF would=20 > [ > greatly benefit from some sort of real time synchronization =20 > [ implementation.=20 > [ > Further, I think the synchornization mechanism should be =20 > [ opensourced so that=20 > [ > we may all contribute to its feature set.=20 > [ =20 > [ =20 > [ Guess I'm feeling a little dense today (see signature :-), =20 > [ but doesn't David=20 > [ Neumann's ChangeNotification framework do the job?=20 > [ =20 > [ I've just added it recently to a current project, and it =20 > [ seems to work OK,=20 > [ and I've been able to monkey with the source to get it to =20 > [ behave the way I=20 > [ want. (In my case, using a list of EntitiesToSynch rather =20 > [ than a list of=20 > [ EntitiesNotToSynch.)=20 > [ =20 > [ My main feature request for it would be that it support =20 > [ automagic discovery=20 > [ of other application instances (probably by reading Monitor's =20 > [ config files)=20 > [ rather than direct configuration in a plist. Or is that what you're=20= > [ referring to?=20 > [ =20 > [ PS: The ChangeNotification framework lives at=20 > [ <,=20 > [ but I found it through SoftTrak <=20 > [ =20 > [ -- =20 > [ Gary Teter, Big Dog=20 > [ Bulldog Beach Interactive http://www.bulldogbeach.com=20 > [ There's always an excuse, and it usually involves coffee.=20 > [ =20 > [ _______________________________________________=20 > [ WebObjects mailing list=20 > [ WebObjects@omnigroup.com=20 > [ http://www.omnigroup.com/mailman/listinfo/webobjects=20 > [ =20 > _______________________________________________=20 > WebObjects mailing list=20 > WebObjects@omnigroup.com=20 > http://www.omnigroup.com/mailman/listinfo/webobjects=20 > =20 > =20 > =20 > =20 From erik at x101.net Thu Jul 6 15:46:36 2000 From: erik at x101.net (Erik Doernenburg) Date: Thu Jul 6 14:46:36 2000 Subject: [REPOST] adding third-party classes (.jar, .zip, etc.) to aproject In-Reply-To: Message-ID: If you work with Solaris or X Server you could also download the Java Framework maker from www.mulle-kybernetik.com. It "wraps" jar archives into real frameworks. You can then simply link against the framework and don't have to worry about anything. cheers, erik > From: Kieren Richard MacMillan > Date: 2000-07-06 00:06:51 +0100 > To: WebObjects Mailing List > Subject: [REPOST] adding third-party classes (.jar, .zip, etc.) to aproject > In-Reply-To: > List-Id: Discussions of Apple's WebObjects > X-BeenThere: webobjects@omnigroup.com > X-Mailman-Version: 2.0beta3 > Delivered-To: erik@localhost > User-Agent: Microsoft-Outlook-Express-Macintosh-Edition/5.02.2022 > > Hey > > Sorry for the repost, but this issue is getting critical quickly -- I > haven't been able to get this to work, and it looks like adding third-party > classes will be increasingly necessary in this project... > > Thanks for any quick responses anyone can give! > Kieren. > > > ---------- > Hello, all! > > In building my statistics program, rather than reinvent the wheel, I scoured > the 'net and found the JSci.* classes, which include several necessary > methods (e.g. Chi-Squared Distribution). Now I would like to add this set of > classes to my WOProject. > > I've searched the archive, as well as read the article on the subject at > . However, I still > have questions, so I hope someone can help... > > 0. I think I have both .jar and .zip (source) files -- which is recommended? > > 1. My applet source is in Subproject --> ClientSideJava.subproj, but the > classes are supposed to be put into Subproject --> CommonJava.subproj. Do > imports across such path boundaries work automagically, or do I have to add > the class to my ClientSideJava.subproj as well? > > 2. If I've followed the instruction in the TIL article (including setting > the NSJavaUserPath in the CustomInfo.plist file and modifying the > OTHER_CLASSPATH line in the Makefile.preamble file), is there anything to > worry about when I move to deploy on another machine? > > 3. When I call the new method in my applet code, I get an error. Do I have > to use "import JSci.maths.statistics.*" in my code, or should it be there > automatically? > > 4. Any other words of advice? > > Thanks a (new Integer(1,000,000))!! > Kieren. > > > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects > > > > From jeff at reportmill.com Thu Jul 6 16:10:31 2000 From: jeff at reportmill.com (Jeff Martin) Date: Thu Jul 6 15:10:31 2000 Subject: ReportMill question Message-ID: <0FXA000H7QHJC3@mta5.snfc21.pbi.net> There is a name textfield in the Paint/Fill inspector. Jeff Martin ReportMill Software 408.873.1837 jeff@reportmill.com http://www.reportmill.com --- jleung@ci.tacoma.wa.us wrote: > In ReportMill, does anyone know how to change the > name > of a Table once it has been created. I am trying to > cut and paste > Tables from one template to another or reproduce the > same Table > within a template under a different Table name. > > John > _______________________________________________ > WebObjects mailing list > WebObjects@omnigroup.com > http://www.omnigroup.com/mailman/listinfo/webobjects From smiles at tpud.org Thu Jul 6 16:29:39 2000 From: smiles at tpud.org (Spencer Miles) Date: Thu Jul 6 15:29:39 2000 Subject: setMasterObject for master/detail WODisplayGroup References: Message-ID: <00f001bfe799$7bb89490$4bac2ac0@mt108> Hey, Thanks a lot, knowing to put the code in public Main helps out a lot hehe. However it's still not updating itself to the right account. I'm not sure what i'm doing wrong. I've had it fetch on load and not fetch on load but it doesn't seem to make a difference. Is there a way where i could find out why it's not working, maybe some methods of the displaygroup that could give me some more information? Thanks -Spencer ----- Original Message ----- From: "James Dempsey" To: "Spencer Miles" ; "WebObjects Mailing List" Sent: Thursday, July 06, 2000 11:53 AM Subject: Re: setMasterObject for master/detail WODisplayGroup > > public class Main extends WOComponent { > > WODisplayGroup accountDisplayGroup; > > WODisplayGroup billDisplayGroup; > > > > EOEnterpriseObject selection = > > (EOEnterpriseObject)accountDisplayGroup.selectedObject(); > > billDisplayGroup.setMasterObject(selection); > > } > > It seems as if your code is just hanging out loose in your Main class. You > may want to put it inside of a constructor: > > public Main(){ > super(); > EOEnterpriseObject selection = > (EOEnterpriseObject)accountDisplayGroup.selectedObject(); > billDisplayGroup.setMasterObject(selection); > } > > I've never tried putting code such as that inside a Java initialization > block (heaven forbid!), but the two display groups will be initialized by > the time the call to super() returns. > > Another Note: > You want to be sure that the billDisplayGroup (your detail display group) is > set to Fetch On Load. (Either do it in the config panel in WebObjects > Builder, or programatically). > > Doing so makes sure that whenever you change the master object, the display > group will automatically fetch the related detail objects. Otherwise you > need to manually tell the display group to fetch() (yuck!). > > Hope this helps. > > -James > -- > James Dempsey > Apple iServices Training > Apple Computer, Inc. > > dempsey@apple.com > (408) 974-7817 > > > From: Spencer Miles > > Date: Thu, 06 Jul 2000 11:41:58 -0700 > > To: WebObjects Mailing List > > Subject: setMasterObject for master/detail WODisplayGroup > > > > Hello, > > I have two display groups in my main.wo component, accountDisplayGroup > > which points to a table called Account, and billDisplayGroup which is a > > Master/Detail group (Entity is 'Bill', Master Entity is 'Account', Detail > > key is 'bills'). I'm not completely certain what I'm doing, but I'm > > guessing that I need to set the masterObject for the billDisplayGroup equal > > to the selectedObject in the accountDisplayGroup so that billDisplayGroup > > knows which account we are using. The code i'm using is as follows: > > > > import com.apple.yellow.foundation.*; > > import com.apple.yellow.webobjects.*; > > import com.apple.yellow.eocontrol.*; > > > > public class Main extends WOComponent { > > WODisplayGroup accountDisplayGroup; > > WODisplayGroup billDisplayGroup; > > > > EOEnterpriseObject selection = > > (EOEnterpriseObject)accountDisplayGroup.selectedObject(); > > billDisplayGroup.setMasterObject(selection); > > } > > > > When I compile i recieve the following error: > > > > Main.java:12: Identifier expected. > > billDisplayGroup.setMasterObject(selection); > > ^ > > 1 error > > > > My guess is that Identifier is something like putting > > (WODisplayGroup)billDisplayGroup.setMasterObject(selection); > > But when I do that I recieve a type expected error. Could someone help me > > out here? > > Thanks a ton! > > -Spencer Miles > > > > > > _______________________________________________ > > WebObjects mailing list > > WebObjects@omnigroup.com > > http://www.omnigroup.com/mailman/listinfo/webobjects > From eyal at mcy.com Thu Jul 6 16:34:29 2000 From: eyal at mcy.com (Eyal Eithcowich) Date: Thu Jul 6 15:34:29 2000 Subject: A "Nullify" relatonship doesn't nullify Message-ID: <008401bfe79a$89750270$a60aa8c0@kamgar.nyc.mcy.com> This is a multi-part message in MIME format. ------=_NextPart_000_0080_01BFE778.FE884B20 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0081_01BFE778.FE884B20" ------=_NextPart_001_0081_01BFE778.FE884B20 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi All, We're having a problem with a reference to a deleted object not being = nullified. It's a problem with the eomodel -- we built a Direct 2 Web = against it and the problem persists. I've included the d2w.=20 There are currently 4 entities in the model: CD, Track, Contract, = ContractItem. When we delete a Contract, we expect ContractItem to be deleted as well. = This works. But there is also a to-one relationship between ContractItem = and Track. When we delete the Contract, we expect the reference to = ContractItem in Track to be nullified (the delete rule for the = relationship is set to Nullify in the EOModel). But it doesn't. The = Track row still has the reference to the deleted ContractItem. I know it's a hassle, but if you have a minute take a look at the = attachment. Thanks, Eyal ------=_NextPart_001_0081_01BFE778.FE884B20 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi All,
 
We're having a problem with a reference to a deleted = object=20 not being nullified. It's a problem with the eomodel -- we built a = Direct 2 Web=20 against it and the problem persists. I've included the d2w. =
 
There are currently 4 entities in the = model: CD, Track,=20 Contract, ContractItem.
 
When we delete a Contract, we expect ContractItem to = be=20 deleted as well. This works. But there is also a to-one relationship = between=20 ContractItem and Track. When we delete the Contract, we expect the = reference to=20 ContractItem in Track to be nullified (the delete rule for the = relationship is=20 set to Nullify in the EOModel). But it doesn't. The Track row still has = the=20 reference to the deleted ContractItem.
 
I know it's a hassle, but if you have a minute take = a look at=20 the attachment.
 
Thanks,
Eyal
 
 
 
------=_NextPart_001_0081_01BFE778.FE884B20-- ------=_NextPart_000_0080_01BFE778.FE884B20 Content-Type: application/x-stuffit; name="Test12.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Test12.zip" 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 McA/8u1RAOisRgosudo0MaDKbApP0EfQGkDtmFfRPHcGBR8eGslqr0oBmwSlAnV92tGp8zmjgSJT 76NFBzGOinMt8bA02/ym7k8v+5MTn2F1chtfKHfGBDszu5stE+7jXxEd+OHn2x/HZ8OIejbuo6AB R72lgZZW7InpEnWseFaE+IwOua/G7kzeB4+13URAufM0+g9QSwMECgAAAAAACY/mKAAAAAAAAAAA AAAAAB4AAABMaXN0UGh5aXNjYWxSaWdodHNDb250cmFjdC53by9QSwMEFAAAAAgACY/mKL+oE/oX AgAAxQkAAD0AAABMaXN0UGh5aXNjYWxSaWdodHNDb250cmFjdC53by9MaXN0UGh5aXNjYWxSaWdo dHNDb250cmFjdC5odG1sxVVRb5swEH7vr7AyaY9L1L0CEgavzcQgcqiqPU0ucRJUYhA46/LvZ9yk cewjTOqm+QV839l3/vzd2XskOMNfSZSjNPxG/MmCbfhjy5qGt5PAs9Gk7GRaS7Jr5GES3CA9vIik OaGnaW/JQ5wQw6DGxUT70MC2aXOMwmR+l/oFF5K3bg6YCaGTm74h6j+Pnd2UkV7JAUpgPHrKfmI2 Gt0KraYWIR52+UIRSZJFGMfz9M7/jHBGY0L9GfrxkNIsSfzvZKldlosw6l1mgX0e0xU4232f6b0D ACSMH6m32NwQIUt5oLzh6lvWYkBAOXuqOK1fFAzc2nFvQEGXOKgeAx/a+W28D/4jDwSRtColyQBq emC+U+Vni+v8/zdyesexwSq7cFD4iJcrIxMauvShPeEG8v809TqOgfr9dC3ZNx3ziktOsltABa+Y 1sHtsBA0iye+/hnh4zIca2zX+8VyW79ETBS8AojArHhOSvEMQJTLfSvwXkrdYwY5gjI+/nlT49G6 WAV1LOu9g18k67pOzmc+HP05gtP181E8dY2tePtBgVa6HeVXUbEd61sx2FicFg89os7jfoa+ZGmO oizJqP9hvZ6pEXg4SGukYhbbUmyARYvtoewKVtFys5VdVAvZskICji0v6nbVoXW9F6tP3hSrhPuA boZTKMUr/FmiNW/o/GssHZYtVMAn3UKYKdyr1e3IyJbpjTn5DVBLAwQUAAAACAAJj+YoJ3Zy0xwC AAAKBwAAPAAAAExpc3RQaHlpc2NhbFJpZ2h0c0NvbnRyYWN0LndvL0xpc3RQaHlpc2NhbFJpZ2h0 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 ZDJ3bW9kZWztVE1vwjAMve9XVJyYhFZ23bQDYhymIWAIbee0NTTDTViSgirEf5/TqVu/6LiA9sE7 JY6fYz/H2V44BBUjaOfOaac7i+3nyoLFJpSKHK673VuncOQj05bqy8hlqxWCmwCi3LgBV+AbIzfg uVOKX+JhaFnFa/LxBuOeCJ5ihnzOQZXIFm/ZWTHxPKrRM3zd8gjJM8MYmq7KsISEOIbpZYOTBqS6 pRqxCMi7xfXApjqTN60G1trmQO7ItdnjtuvU249TJQjDTXIlqIqjFTsJE659hlO+CI3uS2EU8/eW X7Feljx3pb365ok1Ptme1nwhIpKhJh+SaMJMSDFWbAGjeo2yKofU0oMqzeefb/Z5Fmtwgln0pZhz FZ3HsY70a8ex/9HVnz2Rp9BKAQvGApNB+rSsarpBtnZTe/+cNmuuuYdwoDT9+86e4UntmlfsDwai jjOj5fJf6YpS1v3XmZIv4I29Vwqqh1XHgjDpykq3ewdQSwECFAAUAAAACAB8gjgoKEXNQFIAAABd AAAAEAAAAAAAAAABACAAtoEAAAAAQXBwbGljYXRpb24uamF2YVBLAQIUABQAAAAIAFWP5ij6R/1H ZQEAAPoDAAAiAAAAAAAAAAEAIAC2gYAAAABDb25maXJtUGh5aXNjYWxSaWdodHNDb250cmFjdC5q YXZhUEsBAhQACgAAAAAAVY/mKAAAAAAAAAAAAAAAACEAAAAAAAAAAAAQAP9BJQIAAENvbmZpcm1Q aHlpc2NhbFJpZ2h0c0NvbnRyYWN0LndvL1BLAQIUABQAAAAIAFWP5igs1XaV2QAAAIQCAABDAAAA AAAAAAEAIAC2gWQCAABDb25maXJtUGh5aXNjYWxSaWdodHNDb250cmFjdC53by9Db25maXJtUGh5 aXNjYWxSaWdodHNDb250cmFjdC5odG1sUEsBAhQAFAAAAAgAVY/mKPvWmwfxAAAAPQIAAEIAAAAA AAAAAQAgALaBngMAAENvbmZpcm1QaHlpc2NhbFJpZ2h0c0NvbnRyYWN0LndvL0NvbmZpcm1QaHlp c2NhbFJpZ2h0c0NvbnRyYWN0LndvZFBLAQIUABQAAAAIAFWP5iiOQHz4WQAAAHUAAABCAAAAAAAA AAEAIAC2ge8EAABDb25maXJtUGh5aXNjYWxSaWdodHNDb250cmFjdC53by9Db25maXJtUGh5aXNj YWxSaWdodHNDb250cmFjdC53b29QSwECFAAUAAAACAB8gjgoN+C4fXkAAACtAAAAEAAAAAAAAAAB ACAAtoGoBQAAQ3VzdG9tSW5mby5wbGlzdFBLAQIUABQAAAAIAHyCOCg9vf54eAAAAJEAAAAKAAAA AAAAAAEAIAC2gU8GAABoLnRlbXBsYXRlUEsBAhQAFAAAAAgAfII4KET9FDkiAQAALQIAAA0AAAAA AAAAAQAgALaB7wYAAGphdmEudGVtcGxhdGVQSwECFAAUAAAACAAKj+YoTQ7XrFwGAAATFgAAHwAA AAAAAAABACAAtoE8CAAATGlzdFBoeWlzY2FsUmlnaHRzQ29udHJhY3QuamF2YVBLAQIUAAoAAAAA AAmP5igAAAAAAAAAAAAAAAAeAAAAAAAAAAAAEAD/QdUOAABMaXN0UGh5aXNjYWxSaWdodHNDb250 cmFjdC53by9QSwECFAAUAAAACAAJj+Yov6gT+hcCAADFCQAAPQAAAAAAAAABACAAtoERDwAATGlz dFBoeWlzY2FsUmlnaHRzQ29udHJhY3Qud28vTGlzdFBoeWlzY2FsUmlnaHRzQ29udHJhY3QuaHRt bFBLAQIUABQAAAAIAAmP5igndnLTHAIAAAoHAAA8AAAAAAAAAAEAIAC2gYMRAABMaXN0UGh5aXNj YWxSaWdodHNDb250cmFjdC53by9MaXN0UGh5aXNjYWxSaWdodHNDb250cmFjdC53b2RQSwECFAAU AAAACAAJj+YoI0ZvajgBAADEAgAAPAAAAAAAAAABACAAtoH5EwAATGlzdFBoeWlzY2FsUmlnaHRz Q29udHJhY3Qud28vTGlzdFBoeWlzY2FsUmlnaHRzQ29udHJhY3Qud29vUEsBAhQAFAAAAAgAfII4 KF6yjsoTAQAALgIAAAoAAAAAAAAAAQAgALaBixUAAG0udGVtcGxhdGVQSwECFAAUAAAACACchDgo wZzJv3IAAACPAAAACAAAAAAAAAABACAAtoHGFgAATWFpbi5hcGlQSwECFAAUAAAACACchDgoUV8F pdYAAACXAQAACQAAAAAAAAABACAAtoFeFwAATWFpbi5qYXZhUEsBAhQACgAAAAAAZHzmKAAAAAAA AAAAAAAAAAgAAAAAAAAAAAAQAP9BWxgAAE1haW4ud28vUEsBAhQAFAAAAAgAnIQ4KAAGrUNhAQAA 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 AAAAAAAAAAAADwAAAAAAAAAAABAA