On 27/07/2008, at 2:59 PM, Rams wrote:
Check this out...
public Application() {
NSLog.out.appendln("Welcome to " + name() + " !");
NSLog.out.appendln("before setting frameworksBaseURL(): " +
frameworksBaseURL());
setFrameworksBaseURL("/WebObjects/myapp.woa/Frameworks");
NSLog.out.appendln("after setting frameworksBaseURL()" +
frameworksBaseURL());
}
Outputs /Library/WebObjects/Logs/myapp-instance
Jul 27 00:07:04 myapp[2004] (ERXNSLogLog4jBridge.java:40) INFO
NSLog - Welcome to myapp !
Jul 27 00:07:04 myapp[2004] (ERXNSLogLog4jBridge.java:40) INFO
NSLog - before setting frameworksBaseURL(): /WebObjects/Frameworks
Jul 27 00:07:04 myapp[2004] (ERXNSLogLog4jBridge.java:40) INFO
NSLog - after setting frameworksBaseURL()/WebObjects/myapp.woa/
Frameworks
This appears to be a bug in WebObjects 5.4.3 because the exact same
code works fine in WebObjects 5.3.3. Note that your code above only
works because of the logging statement which calls frameworksBaseURL()
BEFORE you call setFrameworksBaseURL(). For my application I couldn't
use your solution because I didn't know the app install directory at
compile time, only at run time. Hence I modified it to be.
public Application() {
NSLog.out.appendln("Welcome to " + name() + " !");
/* ** put your initialization code in here ** */
frameworksBaseURL();
if ( System.getProperty("WOFrameworksBaseURL") != null )
setFrameworksBaseURL(System.getProperty("WOFrameworksBaseURL"));
}
To identify the bug I added some more logging and overrode some
WOApplication methods. As you can see the first call to
frameworksBaseURL() in WebObjects 5.4.3 actually calls
setFrameworksBaseURL("/WebObjects/Frameworks"). This does not happen
in WebObjects 5.3.3
public class Application extends WOApplication {
public static void main(String[] argv) {
WOApplication.main(argv, Application.class);
}
public Application() {
NSLog.out.appendln("Welcome to " + name() + " !");
/* ** put your initialization code in here ** */
if ( System.getProperty("WOFrameworksBaseURL") != null )
setFrameworksBaseURL(System.getProperty("WOFrameworksBaseURL"));
frameworksBaseURL();
if ( System.getProperty("WOFrameworksBaseURL") != null )
setFrameworksBaseURL(System.getProperty("WOFrameworksBaseURL"));
frameworksBaseURL();
}
@Override
public String frameworksBaseURL() {
NSLog.out.appendln("frameworksBaseURL() pre super:
WOProperties.TheFrameworksBaseURL = " +
WOProperties.TheFrameworksBaseURL);
NSLog.out.appendln("frameworksBaseURL() pre super:
System.getProperty(WOFrameworksBaseURL) = " +
System.getProperty("WOFrameworksBaseURL"));
String s = super.frameworksBaseURL();
NSLog.out.appendln("frameworksBaseURL() post super:
WOProperties.TheFrameworksBaseURL = " +
WOProperties.TheFrameworksBaseURL);
NSLog.out.appendln("frameworksBaseURL() post super:
System.getProperty(WOFrameworksBaseURL) = " +
System.getProperty("WOFrameworksBaseURL"));
NSLog.out.appendln("frameworksBaseURL() post super:
super.frameworksBaseURL() = " + s);
NSLog.out.appendln("");
return s;
}
@Override
public void setFrameworksBaseURL(String string) {
NSLog.out.appendln("setFrameworksBaseURL(String string): change from
" + WOProperties.TheFrameworksBaseURL + " to " + string);
super.setFrameworksBaseURL(string);
}
}
WEBOBJECTS 5.4.3 - SHOWS BUG
[2009-1-11 11:26:8 EST] <main> WOFrameworksBaseURL=/WebObjects/
WeboTest.woa/Frameworks
...
[2009-1-11 11:26:8 EST] <main> WebObjects version = 5.4.3
...
Welcome to WeboTest !
setFrameworksBaseURL(String string): change from null to /WebObjects/
WeboTest.woa/Frameworks
frameworksBaseURL() pre super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() pre super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
setFrameworksBaseURL(String string): change from /WebObjects/
WeboTest.woa/Frameworks to /WebObjects/Frameworks <--WHO'S CALLING THIS
frameworksBaseURL() post super:
WOProperties.TheFrameworksBaseURL = /WebObjects/Frameworks
frameworksBaseURL() post super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
super.frameworksBaseURL() = /WebObjects/Frameworks
setFrameworksBaseURL(String string): change from /WebObjects/
Frameworks to /WebObjects/WeboTest.woa/Frameworks
frameworksBaseURL() pre super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() pre super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
super.frameworksBaseURL() = /WebObjects/WeboTest.woa/
Frameworks
WEBOBJECTS 5.3.3 - NO BUG
[2009-01-11 11:32:02 EST] <main> WOFrameworksBaseURL=/WebObjects/
WeboTest.woa/Frameworks
...
Welcome to WeboTest !
setFrameworksBaseURL(String string): change from null to /WebObjects/
WeboTest.woa/Frameworks
frameworksBaseURL() pre super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() pre super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
super.frameworksBaseURL() = /WebObjects/WeboTest.woa/
Frameworks
setFrameworksBaseURL(String string): change from /WebObjects/
WeboTest.woa/Frameworks to /WebObjects/WeboTest.woa/Frameworks
frameworksBaseURL() pre super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() pre super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/
Frameworks
frameworksBaseURL() post super:
super.frameworksBaseURL() = /WebObjects/WeboTest.woa/
Frameworks
Cheers
Tim
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-deploy mailing list (Webobjects-deploy@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-deploy/archive%40mail-archive.com
This email sent to arch...@mail-archive.com