[jira] Updated: (JDO-467) Named PMF proposal / JDOHelper
Web Server forum
Back To The Forum Home!Search!Private Messaging System

Web Server Talk Web Server Talk > Web Servers reviews > Apache Server configuration support > Apache JDO Project > [jira] Updated: (JDO-467) Named PMF proposal / JDOHelper




  Last Thread   Next Thread Next
  Show Printable Version Email this Page Subscribe to this Thread      Post New Thread    Post A Reply      

    [jira] Updated: (JDO-467) Named PMF proposal / JDOHelper  
Matthew T. Adams (JIRA)


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
03-25-07 12:11 AM


[ https://issues.apache.org/jira/brow...ls:all-tabpanel ]

Matthew T. Adams updated JDO-467:
---------------------------------

Attachment: JDO-467.2007-03-24.patch

Slight refactoring:
* renamed methods "getNamedPersistenceManagerFactory*" to "getPersistenceUni
t*"
* refactored tests so that they look for META-INF/jdoconfig.xml in test-spec
ific subdirectories using new test class javax.jdo.ClasspathHelper
* added a few negative tests

This patch supercedes patch JDO-467.2007-03-23.patch.

> Named PMF proposal / JDOHelper enhancements
> -------------------------------------------
>
>                 Key: JDO-467
>                 URL: https://issues.apache.org/jira/browse/JDO-467
>             Project: JDO
>          Issue Type: New Feature
>          Components: api2, api2-legacy
>    Affects Versions: JDO 2 final
>            Reporter: Matthew T. Adams
>         Assigned To: Matthew T. Adams
>             Fix For: JDO 2 maintenance release 1
>
>         Attachments: JDO-467.2007-03-23.patch, JDO-467.2007-03-24.patch
>
>
> From the email on the expert group & jdo-dev alias:
> This is a proposal we discussed on the Fri Feb 23 JDO conf call.  Please
> review and discuss.
> Overview:
> Currently, there is no way to bootstrap a JDO implementation completely
> externally to the source code.  The developer is required to provide at
> least a resource name that identifies a java.util.Properties file on the
> classpath that can configure a single PMF.  This makes deployment in
> different environments more challenging than necessary.
> Motivation:
> * Source code is required to be aware of external configuration:
>     * In all current JDOHelper.getPersistenceManagerFactory APIs and
>     * in order to configure listeners.
> * Aligns JDO bootstrapping with JPA bootstrapping concepts.
> Proposed Solution:
> * Introduce new API methods and JDO equivalent of the JPA persistence
> unit concepts, including a jdo.xml file that provides for the
> configuration of one or more named PMFs.
> Details:
> * PersistenceManagerFactory additions
> /** Returns the persistence unit name of this PMF.  It's the JPA
> persistence unit name if configured via persistence.xml or the JDO
> persistence unit name if configured via javax.jdo.xml. */
> public String getName();
> * JDOHelper API additions
> /** The default name of the JDO configuration file. */
> public static final String DEFAULT_JDO_CONFIG_RESOURCE_NAME =
> "javax.jdo.xml";
> /** The name of the default persistence unit. */
> public static final String DEFAULT_PMF_NAME = "default";
> /** Gets the PMF named "default" in the resource "javax.jdo.xml" found
> via the current ClassLoader. */
> public static PersistenceManagerFactory getPersistenceFactoryManager() 
23;
>     return  getPersistenceFactoryManagerByName(DEFAU
LT_PMF_NAME);
> }
> /** Gets the PMF named pmfName in the resource "javax.jdo.xml" found via
> the current ClassLoader. */
> public static PersistenceManagerFactory
>  getPersistenceManagerFactoryByName(Strin
g pmfName) {
>     return  getPersistenceFactoryManagerByName(DEFAU
LT_PMF_NAME,
> DEFAULT_JDO_CONFIG_RESOURCE_NAME);
> }
> /** Gets the PMF named pmfName in the resource named resourceName found
> via the current ClassLoader. */
> public static PersistenceManagerFactory
>  getPersistenceManagerFactoryByName(Strin
g pmfName, String resourceName)
> {
>     return  getPersistenceFactoryManagerByName(DEFAU
LT_PMF_NAME,
> DEFAULT_JDO_CONFIG_RESOURCE_NAME, getClass().getClassLoader());
> }
> /** Gets the PMF named pmfName in the resource named resourceName found
> via the current ClassLoader. */
> public static PersistenceManagerFactory
>  getPersistenceManagerFactoryByName(Strin
g pmfName, String resourceName,
> ClassLoader loader) {
>     // reads resource resourceName via given loader
>     // configures & returns PMF with the given name
> }
> * Possibilities for DEFAULT_JDO_CONFIG_RESOURCE_NAME value:
>     need to determine file name (similar to persistence.xml)
>     javax.jdo.xml
>     jdo.xml
>     ...
> * Proposal for JDO persistence unit configuration XML file
>     * Could be more like Spring beans.xml (supporting references, etc.)
>     * Note:  Square brackets indicate optional elements/attributes
> <jdo-config>
>     [<extension> elements wherever appropriate]
>
>     <!-- Can use attributes for standardized properties -->
>     <!-- Can also support vendor-specific attributes and still validate
> against schema -->
>     <persistence-manager-factory
>         [name="default"] <!-- no name implies only the default PMF,
> named "default"; can only be one per file -->
>         [resource="..."] <!-- convenient for backward compatibility --
>
>
>         [class="xcalia.ic.jdo.PersistenceManagerFactory"]
>         [connection-driver="..."]
>         [connection-url="..."]
>         [connection-user-name="..."]
>         [connection-password="..."]
>         [...] 
>         <!-- or XML-friendly <property> elements -->
>         [<property name="javax.jdo...." value="..."/>]
>         [<property name="javax.jdo...." value="..."/>]
>         [<property name="xcalia.ic...." value="..."/>]
>         [...]
>
>         <!-- ...and/or properties in java.util.Properties file format?
> overrides <property> elements? -->
>         <!-- This allows people to continue to use good, old
> java.util.Properties format if they want -->
>         <properties><![CDATA[
>             javax.jdo....=...
>             javax.jdo....=...
>             xcalia.ic....=...
>             ...
>         ]]></properties>
>         <!-- This provides a way (currently, the only way) to configure
> listeners outside of the code -->
>         <!-- We'd have to address any class loading issues, since we're
> only given a class name -->
>         <!-- These should have javax.jdo.listener.... property &
> property value equivalents in order to keep old-fashioned
> java.util.Property-formatted values consistent with these values -->
>         <!-- Method names default to names of corresponding interfaces;
> if not present on listener-class, they're a no-op or not even called -->
>         [<instance-lifecycle-listener
>             listener-class="my.jdo.InstanceListener"
>             classes-observed="my.domain.Foo,my.domain.Bar,.."
>             [static-factory-method="..."]
>             [pre-attach="preAttach"]
>             [post-attach="postAttach"]
>             [pre-store="preStore"]
>             [...]
>         />]
>
>         <!-- The <instance-lifecycle-listener> element is sufficient,
> but we could provide elements for each of the listener types -->
>         [<attach-lifecycle-listener
>             class="..."
>             [factory-method="..."]
>             [pre-attach="preAttach"]
>             [post-attach="postAttach"]
>         />]
>         [...]
>         <!-- Can optionally include <jdo>, <orm> and <jdoquery> elements
> here in order to override annotations, or developer-provided .jdo, .orm,
> and/or .jdoquery files (from Erik Bengston) -->
>         <!-- Can add attribute to <jdo>, <orm>, and <jdoquery> to allow
> for the specifiation of another resource or set of resources on the
> classpath (from Craig Russell), for example: -->
>         <jdo
> resources="META-INF/production-1;META-INF/production-2;..."/>
>
>     </persistence-manager-factory>
> </jdo-config>

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.







[ Post a follow-up to this message ]



    Sponsored Links  




 





   All times are GMT. The time now is 07:42 AM.      Post New Thread    Post A Reply      
  Last Thread   Next Thread Next


Most Popular forums 

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is OFF
 
Medical and Health forum | Computer Games Reviews | Graphics design forum

Back To The Top
Home | Usercp | Faq | Register