Gordon,
Will this be enough:
Index: config/META-INF/persistence.xml
===================================================================
RCS file: /cvs/glassfish/entity-persistence-tests/config/META-INF/persistence.xml,v
retrieving revision 1.9
diff -r1.9 persistence.xml
33a34,39
> <persistence-unit name="ignore" transaction-type="JTA">
> <description>This PU is for validation purpose only - it should
not
> break the rest of the tests</description>
>
<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
> <jta-data-source>jdbc/__default</jta-data-source>
> </persistence-unit>
I also attach it here.
Let me know if you approve the rest of the changes.
thanks,
-marina
Gordon Yorke wrote:
> Yes Marina, I think adding a ignore PU into the testing persistence.xml file is a good idea (with comments of course as there will not be a unit test for this).
> --Gordon
>
> -----Original Message-----
> From: Marina Vatkina [mailto:Marina.Vatkina_at_Sun.COM]
> Sent: Friday, March 17, 2006 2:11 PM
> To: persistence_at_glassfish.dev.java.net
> Cc: Tom Ware
> Subject: Please review the fix for issue 256
>
>
> Attached code fixes the issue as discussed in the option b).
>
> The dummy DataSource is created (thanks Gordon for the idea!)
> by using existing DataSourceImpl class, which if accessed, will
> throw an exception.
>
> Do we want a test case for this (like a PU "ignore" in an existing
> persistence.xml)?
>
> thanks,
> -marina
>
> Gordon Yorke wrote:
>
>>Hello Marina,
>> Yes I agree, I think we need validation for EE deployment. Go with option b.
>>--Gordon
>>
>>-----Original Message-----
>>From: Marina Vatkina [mailto:Marina.Vatkina_at_Sun.COM]
>>Sent: Thursday, March 16, 2006 1:26 PM
>>To: persistence_at_glassfish.dev.java.net
>>Cc: Tom Ware
>>Subject: Re: Proposed fix for issue 256
>>
>>
>>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
>>>
>>>
>