persistence@glassfish.java.net

Re: Extending the persistence unit

From: Farrukh Najmi <farrukh_at_wellfleetsoftware.com>
Date: Wed, 03 Oct 2007 11:39:01 -0400

Thanks for clearing that up. IMHO, the spec is unclear on this point and
this should be improved in next version.

So my underlying need is to be able to:

    * Have one jar (base-project.jar) contain a pesristence.xml file and
      persistence entity classes
    * Have a standalone program use base-project.jar and somehow add
      listeners to the persistence unit, presumably using configuration
      files in the classpath of standalone program

How can I meet above need in the simplest manner?

Thanks for your help.

Sahoo wrote:
> No, only one persistence.xml file per PU. The PU can comprise of
> classes and other configuration files (e.g. orm.xml) spread across
> several jars. I hope you are not confusing orm.xml with persistence.xml.
>
> The spec supports persistence.xml in a directory in classpath.
>
> Sahoo
>
> Farrukh Najmi wrote:
>> The spec says:
>>
>> "A persistence unit may be packaged within *one or more* jar files
>> contained within a WAR or EAR, as a
>> set of classes within an EJB-JAR file or in the WAR classes
>> directory, or as a combination of these as
>> defined below."
>>
>> Notice the "one or more" above. It leads me to believe that a
>> persistence unit may be defined in more than one persistence.xml files.
>>
>> My question is whether the spec supports having one of these
>> persistence.xml files in a directory in the classpath (and not in a
>> jar, war, ear etc.).
>>
>> Thanks for your help.
>>
>> Sahoo wrote:
>>> There is one persistence.xml per persistence-unit.
>>> META-INF/persistence.xml can be anywhere in the classpath as long as
>>> it contains the list of persistence class names. Look at chapter
>>> #6.2 of the JPA 1.0 spec.
>>>
>>> Thanks,
>>> Sahoo
>>>
>>> Farrukh Najmi wrote:
>>>>
>>>> I have a base project (base-project) that produces a jar with
>>>> persistence classes and a META-INF/persistence.xml file.
>>>>
>>>> Next, I want to use a standalone test program that depends upon the
>>>> base-project.jar for persistence classes and wish to add additional
>>>> persistence.xml files (to add entity listeners and perhaps
>>>> additional persistence classes etc.).
>>>>
>>>> Does the spec require that any additional persistence.xml files be
>>>> in a jar/war etc. or can it be anywhere in the classpath including
>>>> under a directory in classpath?
>>>>
>>>> Specifically, is it legal to place it in META-INF/persistence.xml
>>>> in any directory on the classpath and expect it to be processed by
>>>> the Persistence provider?
>>>>
>>>> TIA for your help.
>>>>
>>
>>


-- 
Regards,
Farrukh
Web: http://www.wellfleetsoftware.com