Just to whine/whinge a little more, If you simply remove the source-code directories from the class path, then EOF can’t find the classes as defined in the EOModel, so what does EOF do? Throw an exception? Nope. Just uses EOGenericRecord instead. Silently.
That would have gotten me around the issue with the ERXEnterpriseObjectCache causing the SQL generation to fail, but that issue needed to be fixed anyway as it was, in fact, broken - a problem waiting to happen - even if SQL Generation shouldn’t have cared. Dave On Apr 24, 2014, at 12:31 PM, David Avendasora <webobje...@avendasora.com> wrote: >> Either that or I’m doing something fundamentally wrong. Place your bets! > > Okay all you people that bet on “SQL generation is busted” are out of luck! > > Shockingly *I* was doing something wrong. > > What? Nobody bet against it being my fault? Sigh. > > Anyway, here’s what I was doing “wrong”: > > We are using the ERCAuditTrail functionality in ERCoreBusinessLogic and since > parts of ERCoreBusinessLogic require ERDirectToWeb we had that on our > classpath as well. > > But not JavaDirectToWeb. > > Since we weren’t actually using any of the direct to web stuff, there were no > compile-time or run-time problems. > > But When NSBundle did the work to initialize the framework principal classes > in all the frameworks on the classpath, *it* tried to load > com.webobjects.directtoweb.D2W, which was not available because > JavaDirectToWeb wasn’t in the project’s classpath. > > So, here’s a lesson for you: > > Generating SQL in EntityModeler is more picky about dependency resolution > than launching and running an application is. > > However, I still maintain that initializing the EO to do SQL generation is > kinda weird. What does the EO know that the EOEntity or class description > doesn’t about SQL generation. > > Isn’t one of the entire points of EOF is that the EO doesn’t know jack shit > about how it’s persisted? > > Sigh. > > Dave > > > > On Apr 24, 2014, at 11:42 AM, David Avendasora <webobje...@avendasora.com> > wrote: > >> >> On Apr 24, 2014, at 11:05 AM, David Avendasora <webobje...@avendasora.com> >> wrote: >> >>> If ERXEnterpriseObjectCache breaks it, what else can? >> >> That was *supposed* to be rhetorical. But, well, guess what? I can tell you >> at least one other thing that breaks it: >> ERXFrameworkPrincipal.setUpFrameworkPrincipalClass(Class) >> >> Seriously, does SQL Generation work for anyone using Wonder? I’m just >> curious because I can’t see how it does. >> >> Either that or I’m doing something fundamentally wrong. Place your bets! >> >> Dave >> >> >> java.lang.NoClassDefFoundError: com/webobjects/directtoweb/D2W >> at java.lang.Class.getDeclaredFields0(Native Method) >> at java.lang.Class.privateGetDeclaredFields(Class.java:2348) >> at java.lang.Class.getField0(Class.java:2675) >> at java.lang.Class.getField(Class.java:1554) >> at >> er.extensions.ERXFrameworkPrincipal.setUpFrameworkPrincipalClass(ERXFrameworkPrincipal.java:157) >> at >> er.extensions.ERXFrameworkPrincipal.setUpFrameworkPrincipalClass(ERXFrameworkPrincipal.java:163) >> at >> er.corebusinesslogic.ERCoreBusinessLogic.<clinit>(ERCoreBusinessLogic.java:82) >> at java.lang.Class.forName0(Native Method) >> at java.lang.Class.forName(Class.java:171) >> at >> com.webobjects.foundation._NSUtilities._classWithPartialName(_NSUtilities.java:348) >> at >> com.webobjects.foundation._NSUtilities.classWithName(_NSUtilities.java:335) >> at >> com.webobjects.foundation.NSBundle.initPrincipalClass(NSBundle.java:1760) >> at >> com.webobjects.foundation.NSBundle.InitPrincipalClasses(NSBundle.java:700) >> at com.webobjects.foundation.NSBundle.<clinit>(NSBundle.java:344) >> at >> com.webobjects.eoaccess.EOAdaptor.infoDictionaryForAdaptorNamed(EOAdaptor.java:230) >> at >> com.webobjects.eoaccess.EOAdaptor.classNameForAdaptorNamed(EOAdaptor.java:246) >> at >> com.webobjects.eoaccess.EOAdaptor.classForAdaptorNamed(EOAdaptor.java:262) >> at com.webobjects.eoaccess.EOAdaptor.adaptorWithName(EOAdaptor.java:287) >> at >> com.webobjects.eoaccess.EOAdaptor.adaptorWithModel(EOAdaptor.java:312) >> at >> com.webobjects.eoaccess.EOModel.createPrototypeCache(EOModel.java:624) >> at >> com.webobjects.eoaccess.EOModel.prototypeAttributeNamed(EOModel.java:699) >> at com.webobjects.eoaccess.EOAttribute.<init>(EOAttribute.java:998) >> at com.webobjects.eoaccess.EOEntity.attributes(EOEntity.java:816) >> at >> org.objectstyle.wolips.eomodeler.core.sql.EOFSQLGenerator53.createLocalizedAttributes(EOFSQLGenerator53.java:339) >> at >> org.objectstyle.wolips.eomodeler.core.sql.EOFSQLGenerator53.localizeEntities(EOFSQLGenerator53.java:276) >> at >> org.objectstyle.wolips.eomodeler.core.sql.EOFSQLGenerator53.<init>(EOFSQLGenerator53.java:206) >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) >> at >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >> at >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) >> at >> org.objectstyle.wolips.eomodeler.core.sql.EOFSQLGeneratorFactory.sqlGenerator(EOFSQLGeneratorFactory.java:43) >> at >> org.objectstyle.wolips.eomodeler.actions.GenerateSQLDialog.generateSql(GenerateSQLDialog.java:297) >> at >> org.objectstyle.wolips.eomodeler.actions.GenerateSQLDialog$1.run(GenerateSQLDialog.java:279) >> at java.lang.Thread.run(Thread.java:695) >> Caused by: java.lang.ClassNotFoundException: com.webobjects.directtoweb.D2W >> at java.net.URLClassLoader$1.run(URLClassLoader.java:202) >> at java.security.AccessController.doPrivileged(Native Method) >> at java.net.URLClassLoader.findClass(URLClassLoader.java:190) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:306) >> at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:627) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:247) >> ... 34 more >> >> >> >> >> ————————————————————————————— >> WebObjects - so easy that even Dave Avendasora can do it!™ >> ————————————————————————————— >> David Avendasora >> Senior Software Abuser >> Nekesto, Inc. >> >> >> >> >> >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/webobjects%40avendasora.com >> >> This email sent to webobje...@avendasora.com > > > ————————————————————————————— > WebObjects - so easy that even Dave Avendasora can do it!™ > ————————————————————————————— > David Avendasora > Senior Software Abuser > Nekesto, Inc. > > > > > > ------------------------------------------------------------------------------ > Start Your Social Network Today - Download eXo Platform > Build your Enterprise Intranet with eXo Platform Software > Java Based Open Source Intranet - Social, Extensible, Cloud Ready > Get Started Now And Turn Your Intranet Into A Collaboration Platform > http://p.sf.net/sfu/ExoPlatform_______________________________________________ > Wonder-disc mailing list > wonder-d...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wonder-disc ————————————————————————————— WebObjects - so easy that even Dave Avendasora can do it!™ ————————————————————————————— David Avendasora Senior Software Abuser Nekesto, Inc.
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com