Project Wonder investigations

After some hours I found a reference to the /System/Library/Frameworks in the build process of the Wonder source (Build/build/generic.xml). But the System directory doesn’t exist in my installation, until I create it manually. So the directory is empty, but I think, the build process of WOnder looks there for the WebObjects frameworks.

I uncompressed the WOInstaller.jar and I found in the com.mdimension.woinstaller.Main a hint:

On non-OS.X systems (as my Linux) the original directory structure will be shuffled. The original /System/Library is moved to /Library, the original /Library is moved to /Local/Library. I think, this is important for the wolips.properties file.

The start of the WOInstaller with an os.name property with the value “os x” will not work (this could bypass the folder shuffle), it results in an exception in java.lang.UNIXProcess$Platform.get(). With this knowledge I have switched the folders back after the normal installation:

# cd /home/arothe/WODevelopment/Libraries/WOnder
# mkdir System
# mv Library System/.
# mv Local/Library Library
# rm -rf Local

Now the mapping is like the following, it matches with the documentation (which refers OS X often):

wo.system.frameworks=/home/arothe/WODevelopment/Libraries/WOnder/System/Library/Frameworks
wo.local.frameworks=/home/arothe/WODevelopment/Libraries/WOnder/Library/Frameworks
wo.user.frameworks=/home/arothe/WODevelopment/Libraries/WOnder/User/Library/Frameworks

Within Eclipse projects the build.xml needs the wolips.properties on /home/arothe/WODevelopment/Libraries/WOnder/Library/Application Support/WOLips. But it creates the path from ${user.home}, which is /home/arothe but not /home/arothe/WODevelopment/Libraries/WOnder. So I have set the property user.home within Eclipse on the global level for Ant within “Windows->Preferences->Ant->Runtime->Properties” to the new path (it seems that I cannot set this per project).

The Wonder source doesn’t need a wobuild.properties nor build.properties within the WonderSource folder. It uses the wolips.properties on “/home/arothe/WODevelopment/Libraries/WOnder/Library/Application Support/WOLips/wolips.properties” which I have symlinked to “/home/arothe/WODevelopment/wolips.properties”. Also the build.xml of the Eclipse projects use this path.

To start the build process of the Wonder source, we need to define the new user.home too:

# cd ~/WODevelopment/WonderSource
# ant -Duser.home=/home/arothe/WODevelopment/Libraries/WOnder frameworks

After these changes all is fine. The Wonder source compiles with Ant, the projects in Eclipse can be run and installed.

To finish the last step, the installation of the frameworks on the local webserver, I have found a property “wo.server.root”, which is defined in WonderSource/Build/build/default.properties as /Library/WebServer/Documents/WebObjects. This I have changed to “/srv/www/htdocs/WebObjects” within the wolips.properties (it overrides the default settings). I have to execute the following statement as root:

# su -
# cd /home/arothe/WODevelopment/WonderSource
# ant -Duser.home=/home/arothe/WODevelopment/Libraries/WOnder frameworks.install

This runs successsfully, all frameworks are installed in /srv/www/htdocs/WebObjects/Frameworks.

Leave a Reply