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.

Ramsey


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to