Re: WebObjects 4.5.1 & Tiger?
Re: WebObjects 4.5.1 & Tiger?
- Subject: Re: WebObjects 4.5.1 & Tiger?
- From: Patrick Middleton <email@hidden>
- Date: Wed, 11 Jan 2006 16:00:25 +0000
On 11 Jan 2006, at 14:50, Dana Kashubeck wrote:
Okay, I know there probably isn't anyone out there still using
WebObjects 4.5, but I thought it was worth a shot.
We've been keeping our users on Jaguar, so I've been using Jag to
do my WebObjects development (yes, still with Objective-C).
However, we're about ready to deploy Tiger to our users and I was
hoping to move with them. I can't use a dual-boot system because
it is just not efficient. My choices are either stay on Jag or
find some way to make WO work on Tiger. I can stick with Jag, but
more and more of the applications that I need/would like to use are
Panther or Tiger only.
I was wondering if anyone else has been in this situation and has
any suggestions. Right now porting to Java and the current version
of WO or to something else is not an option. Our apps are built on
hundreds of thousands of lines of code in Objective-C frameworks
and there is only little ol' me for WebObject development. (We're
a very small company!) I'm stuck with WebObjects 4.5.1 for the
foreseeable future, even though porting would be the best thing, so
please don't suggest that. Thanks in advance for any help!!
There is a Known Hack for getting WO451 Developer working on Jaguar
-- see also http://www.wodeveloper.com/omniLists/webobjects-talk/2005/
June/msg00028.html "WO451 on Jaguar/Panther/Tiger [was: Re: Side
effect of OSX on Intel announcement]".
My experience is that this works well even in deployment -- for pure
ObjC woapps only. No Java (if you want the Java version of
WebObjects, you know where to find it), and no WebScript either. The
lack of WebScript means that out-of-the-box you can't use Monitor or
wotaskd either, and you have to very careful about using WOExtensions.
There's source provided for WOExtensions. It's possible re-implement
all the .wos scripted classes as ObjC.
...
It's then possible to do the same thing with Monitor.woa and
wotaskd.woa! I wrote shell scripts to detect .wos files inside
useful woapps and woframeworks, generate stub ObjC classes with as
much code completed as possible, and tar/gzip the .wos files in
place. I found 'nm', 'otool' and 'class-dump' very useful while
doing this. I then built a compatibilty framework for each useful
woapp or woframework, and I now inject these at runtime using the -
WOLoadFrameworks default.
Other stuff? I decided I needed to make all collections mutable (the
compatibility API for this disappeared in 10.2; by WO451...Update4 it
should no longer be necessary), and I managed to fake this via
implementing +initialize and +allocWithZone: in categories on each of
these classes; if the receiver is a class object for mutable
instances, we return [super allocWithZone:zone], otherwise we return
the return value from [MutableEquivalent allocWithZone:zone].
The Monitor private framework implements a class MSiteConfig and an
instance method - (BOOL)saveLocalArchive was printing out lots of
messages "Failed to save local site config. Is %@ writeable ?"
referring to /Library/WebObjects/Configuration/SiteConfig.conf .
The implementation appears to use -[NSDictionary
writeToFile:atomically:] and this was always returning NO. I devised
a plausible equivalent category implementation using -[NSString
writeToFile:atomically:] on the return value from -[NSDictionary
description].
...
You will need to edit the shell script that is the WebObjects 4.5.1
startup item.
All the above was a fair bit of work -- but I have a bunch of apps,
including wotaskd and Monitor, apparently happily deployed on 10.4.3.
Hope this helps!
-- Patrick
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden