Gordon,
EntityManagerSetupImpl.predeploy has the following code:
if(!validationOnly && persistenceUnitInfo != null &&
persistenceUnitInfo.getTransactionType() == PersistenceUnitTransactionType.JTA) {
if(persistenceUnitInfo.getJtaDataSource() == null) {
throw new
PersistenceException(EntityManagerSetupException.jtaPersistenceUnitInfoMissingJtaD
ataSource(persistenceUnitInfo.getPersistenceUnitName()));
}
}
And in Sava SE the persistenceUnitInfo is implemented by
oracle.toplink.essentials.ejb.cmp3.persistence.PersistenceUnitInfo which
getJtaDataSource() always returns null:
public DataSource getJtaDataSource(){
// not required in Java SE
return null;
}
Option a) is tweak EntityManagerSetupImpl.predeploy
Option b) is to change PersistenceUnitInfo to handle the value, and
PersistenceContentHandler to parse it (instead of ignoring right now).
I prefer option b)
Thanks,
-marina
Gordon Yorke wrote:
> Hello Marina,
> Without more specifics on the technical roots of the problem I would have to diagnose this case and provide a solution myself. If you can provide pointers to the broken code (class names, line numbers) and your proposed solution, this process will go much faster.
> --Gordon
>
> -----Original Message-----
> From: Marina Vatkina [mailto:Marina.Vatkina_at_Sun.COM]
> Sent: Wednesday, March 15, 2006 6:58 PM
> To: persistence_at_glassfish.dev.java.net
> Cc: Tom Ware
> Subject: Re: Proposed fix for issue 256
>
>
> Tom, Gordon,
>
> Did you look into this?
>
> thanks,
> -marina
>
> Marina Vatkina wrote On 03/14/06 17:31,:
>
>>Tom,
>>
>>The current code throws an exception if persistence.xml
>>contains a JTA PU even if it's not used by the app. The
>>exception is completely misleading, as it complains that
>>jta datasource is not provided, while it's TopLink code
>>that ignores the value.
>>
>>There are 2 options to fix this:
>>a) ignore JTA transaction type in Java SE. This can be either
>>accomplished by checking the actual class type of PUInfo instance,
>>or using any other available setting, if there is one;
>>
>>b) Change PUInfo processing to accept the JTA (and non-JTA for
>>simplicity) datasource from PersistenceContentHandler.
>>
>>I suggest option b). If you agree I can fix it.
>>
>>thanks,
>>-marina
>
>