Am 22.06.2012 um 19:28 schrieb Ramsey Gurley: > > On Jun 22, 2012, at 10:24 AM, Ramsey Gurley wrote: > >> >> On Jun 22, 2012, at 10:10 AM, Johann Werner wrote: >> >>> >>> Am 22.06.2012 um 18:50 schrieb Ramsey Gurley: >>> >>>> >>>> On Jun 21, 2012, at 11:12 PM, Johann Werner wrote: >>>> >>>>> Hi list, >>>>> >>>>> working with the H2 plugin I got an interesting issue with prototypes. >>>>> Looking at ERPrototypes there is an entity EOJDBCH2Prototypes so I assume >>>>> that adding my own prototypes should have an entity named >>>>> EOJDBCH2CustomPrototypes. Now I have tracked down that during access of a >>>>> model the prototypes for this model are created after calling >>>>> ERXEOAccessUtilities.guessPluginNameForConnectionDictionary(). >>>>> >>>>> The H2 plugin needs only the URL field in the connection dictionary (e.g. >>>>> jdbc:h2:mem:myDB) so it will look up the class name that has been >>>>> registered for the h2 prototcol. That class is ERH2PlugIn from which the >>>>> "PlugIn" part is subtracted leaving "ERH2". That means that WO looks for >>>>> a EOJDBCERH2Prototypes which of course doesn't exist falling back to >>>>> EOJDBCPrototypes which gives wrong external data types. >>>>> >>>>> A solution would be to not only strip off a trailing "PlugIn" but also a >>>>> leading "ER", this would affect the H2 and the Derby plugin. What makes >>>>> me wonder is that apparently no one had this problem before. Changing the >>>>> mentioned method would make WO look for a differently named prototype >>>>> entity so it could break for some. Are there any objections against that >>>>> modification? It seems that guessing a name "ERH2" instead of "H2" should >>>>> be wrong. >>>>> >>>>> jw >>>> >>>> Smells bad. Parsing for magic strings is gross. Have you tried registering >>>> the H2PlugIn class instead of the ERH2PlugIn class in the h2 principal >>>> class? Seems like that should work. >>> >>> That is from the Derby plugin that has the very same class structure: >>> >>> /** >>> * 5.4 declares the same class name for the DerbyPlugIn. If your classpath >>> isn't >>> * exactly right, they'll win, so we pushed the real code into ERDerbyPlugIn >>> and >>> * we set a custom principal class that registers the ER variant that is >>> * "guaranteed" to not have collisions as the plugin for the "derby" >>> * subprotocol. >>> * >>> * @author hprange guided by mschrag >>> */ >>> >>> So I think using H2PlugIn instead of ERH2PlugIn is not a good idea either. >> >> Did you try it? >> >> Ramsey >> > > Alternately, if that doesn't work... > > Looking at the old MySQLPlugIn I wrote, I used the magic string already in > use. Underscore. So create a _H2PlugIn and register that.
That's a good idea :-) > > Ramsey > > _______________________________________________ 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