Nat! bio photo

Nat!

Senior Mull

Twitter Github Twitch

What is wrong with this picture ?

Can you point out the mistake in the following picture of this otherwise fully functional EOModeler application ?
Click on the image to see it in full resolution.

The obvious mistake is the version number of the EOModeler and the displayed list of available adaptors. Version 5.3 is used for Java WebObjects exclusively and the list contains a number of version 4.5 adaptors like MulleSybase and Oracle. The model loaded in the background is an Objective-C EOModel using the MulleSybaseEOAdaptor.

Now how could this happen ?

With the install_name_tool all EOF frameworks from /System/Library/Frameworks/ have been replaced with MulleEOF frameworks. The frameworks are binary compatible and functionally equivalent allowing EOModeler to run without recompile. EOModeler does not just use the model classes from EOAccess but also uses EOEditingContext for the manipulation of the models and EOInterface for it's display.

aden:/Volumes/Source/srcM/MulleEOF nat$ uname -a
Darwin aden 8.5.0 Darwin Kernel Version 8.5.0: Sun Jan 22 10:38:46 PST 2006; root:xnu-792.6.61.obj~1/RELEASE_PPC Power Macintosh powerpc

aden:/Volumes/Source/srcM/MulleEOF nat$ otool -L /Developer/Applications/WebObjects/EOModeler.app/Contents/MacOS/EOModeler /Developer/Applications/WebObjects/EOModeler.app/Contents/MacOS/EOModeler:
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 824.26.0)
/Library/Frameworks/EOAccess.framework/Versions/B/EOAccess (compatibility version 215.0.0, current version 477.0.0)
/Library/Frameworks/EOControl.framework/Versions/B/EOControl (compatibility version 215.0.0, current version 478.0.0)
/Library/Frameworks/EOInterface.framework/Versions/B/EOInterface (compatibility version 215.0.0, current version 366.0.0)
/System/Library/Frameworks/EOModeler.framework/Versions/A/EOModeler (compatibility version 1.0.0, current version 119.0.0)
/System/Library/PrivateFrameworks/EOModelWizard.framework/Versions/A/EOModelWizard (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 567.22.0)
/System/Library/PrivateFrameworks/IDEServices.framework/Versions/A/IDEServices (compatibility version 1.0.0, current version 56.0.0)
/System/Library/PrivateFrameworks/DevToolsRemoteClient.framework/Versions/A/DevToolsRemoteClient (compatibility version 1.0.0, current version 655.0.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.2)
aden:/Volumes/Source/srcM/MulleEOF nat$ otool -L /Library/Frameworks/EOControl.framework/EOControl /Library/Frameworks/EOControl.framework/EOControl:
/Library/Frameworks/EOControl.framework/Versions/B/EOControl (compatibility version 215.0.0, current version 463.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 567.25.0)
/Library/Frameworks/MulleEOClassDescription.framework/Versions/A/MulleEOClassDescription (compatibility version 1.0.0, current version 1.0.0)
/Library/Frameworks/MulleEODataSource.framework/Versions/A/MulleEODataSource (compatibility version 1.0.0, current version 1.0.0)
/Library/Frameworks/MulleEOEntityConcept.framework/Versions/A/MulleEOEntityConcept (compatibility version 1.0.0, current version 1.0.0)
/Library/Frameworks/MulleEOFoundation.framework/Versions/A/MulleEOFoundation (compatibility version 1.0.0, current version 1.0.0)
/Library/Frameworks/MulleEOGenericRecord.framework/Versions/A/MulleEOGenericRecord (compatibility version 1.0.0, current version 1.0.0)
/Library/Frameworks/MulleEOObjectStore.framework/Versions/A/MulleEOObjectStore (compatibility version 1.0.0, current version 1.0.0)
/Library/Frameworks/MulleEOObserver.framework/Versions/A/MulleEOObserver (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.5)
aden:/Volumes/Source/srcM/MulleEOF nat$ otool -L /Library/Frameworks/EOAccess.framework/EOAccess /Library/Frameworks/EOAccess.framework/EOAccess:
/Library/Frameworks/EOAccess.framework/Versions/B/EOAccess (compatibility version 215.0.0, current version 463.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 567.25.0)
/Library/Frameworks/MulleEOModel.framework/Versions/A/MulleEOModel (compatibility version 1.0.0, current version 1.0.0)
/Library/Frameworks/MulleEOSQL.framework/Versions/A/MulleEOSQL (compatibility version 1.0.0, current version 1.0.0)
/Library/Frameworks/MulleEOAdaptor.framework/Versions/A/MulleEOAdaptor (compatibility version 1.0.0, current version 1.0.0)
/Library/Frameworks/MulleEOModellingSupport.framework/Versions/A/MulleEOModellingSupport (compatibility version 1.0.0, current version 1.0.0)
/Library/Frameworks/EOControl.framework/Versions/B/EOControl (compatibility version 215.0.0, current version 463.0.0)
/Library/Frameworks/MulleEODatabaseStore.framework/Versions/A/MulleEODatabaseStore (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.5)
aden:/Volumes/Source/srcM/MulleEOF nat$ otool -L /Library/Frameworks/EOInterface.framework/EOInterface /Library/Frameworks/EOInterface.framework/EOInterface:
/Library/Frameworks/EOInterface.framework/Versions/B/EOInterface (compatibility version 215.0.0, current version 355.0.1)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 567.25.0)
/Library/Frameworks/EOControl.framework/Versions/B/EOControl (compatibility version 215.0.0, current version 463.0.0)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 824.33.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.5)

and

aden:/Volumes/Source/srcM/MulleEOF nat$ otool -L /Library/Frameworks/OracleEOAdaptor.framework/OracleEOAdaptor /Library/Frameworks/OracleEOAdaptor.framework/OracleEOAdaptor:
/System/Library/Frameworks/OracleEOAdaptor.framework/Versions/A/OracleEOAdaptor (compatibility version 1.0.0, current version 342.0.0)
/System/Library/Frameworks/EOAccess.framework/Versions/B/EOAccess (compatibility version 215.0.0, current version 462.0.0)
/System/Library/Frameworks/EOControl.framework/Versions/B/EOControl (compatibility version 215.0.0, current version 462.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 397.4.0)
/Library/Oracle/lib/libclntsh.dylib (compatibility version 8.1.6, current version 8.1.6)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 50.0.0)