Skip to main content

[javaee-spec users] [jsr342-experts] Re: Platform default data source and JMS connection factory

  • From: Linda DeMichiel <linda.demichiel@...>
  • To: jsr342-experts@...
  • Subject: [javaee-spec users] [jsr342-experts] Re: Platform default data source and JMS connection factory
  • Date: Mon, 21 May 2012 11:28:41 -0700
  • List-id: <jsr342-experts.javaee-spec.java.net>
  • Organization: Oracle Corporation

Hi Antonio, all,

On 5/21/2012 1:16 AM, Antonio Goncalves wrote:
Hi all,

I was thinking about the default datasource... and a default persistence.xml. 
With a default datasource, here is what a
minimal persistence.xml could look like in a managed environment :

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence";
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_1.xsd";
              version="2.1">

<persistence-unit name="defaultPU" transaction-type="JTA">
*<jta-data-source>java:global/defaultDataSource</jta-data-source>*

By default, a JTA datasource is to be provided in Java EE container 
environments,
so this will come for free :-)

<properties>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
</persistence-unit>
</persistence>

I don't know what are the plans on the JPA 2.1 expert group, but it would be 
great to standardise more properties, like
the generation of tables at deployment. So we could have something like


This area is currently under discussion in the JPA EG.  Please see my 
proposal on schema
generation and feel free to chime in over there.

<persistence-unit name="defaultPU" transaction-type="JTA">
<jta-data-source>java:global/defaultDataSource</jta-data-source>
<properties>
*<property name="javax.persistence.generateddl" value="create-drop"/>*
</properties>
</persistence-unit>

If we have all the needed configuration by default, then, why not having a 
default persistence.xml with a default
persistence unit being produced by the container ? We could just then write 
(without any extra configuration) :


We had this discussion in the JPA 1.0 days, and experts were pretty much of 
the opinion that a
persistence.xml would be needed anyway for configuration.  Schema generation 
properties will
presumably add to this.  Again, feel free to raise the issue to the JPA 2.1 
EG.

thanks,

-Linda

@Stateless
public class MyService {

     @Inject
     private EntityManager entityManager;
}

Again, that's inreasing the easy of development. Any thoughts ?

Antonio

On Sun, Apr 15, 2012 at 7:13 PM, Adam Bien <abien@... <mailto:abien@...>> 
wrote:


    On 22.03.2012, at 23:23, Linda DeMichiel wrote:

     > In view of the feedback we've received on this issue, our conclusion is
     > that we should adopt approach 3.
     >
     > To summarize, in the data source case, the following will apply:
     >
     > The Java EE Platform requires that a Java EE Product Provider
     > provide a database in the operational environment.  The Java EE
     > Product Provider must also provide a preconfigured, default data
     > source for use by the application in accessing this database.
     >
     > The Java EE Product Provider must make the default data source
     > accessible to the application under the JNDI name
     > java:comp/defaultDataSource.
     >
     > The Application Component Provider or Deployer may explicitly bind a
     > DataSource resource reference to the default data source using the
     > lookup element of the Resource annotation or the lookup-name element
     > of the resource-ref deployment descriptor element.  For example,
     >
     > @Resource(name="myDataSource", lookup="java:comp/defaultDataSource")
     > DataSource myDS;

    +1 but:

    @Inject
    DataSource myDS; should work as well. (I would require a default producer 
to do the job).
     >
     > If a DataSource resource reference is not mapped to a specific data
     > source by the Application Component Provider or Deployer, it must be
     > mapped by the Java EE Product Provider to a preconfigured data source
     > for the Java EE Product Provider's default database.  For example, in
     > the absence of any action on the part of the developer or deployer,
     > the following will map to a preconfigured data source for the
     > product's default database:
     >
     > @Resource(name="myDataSource")
     > DataSource myDS;
     >
     >
     > And similarly for default JMS Connection Factory, whose JNDI name is
     > java:comp/defaultJMSConnectionFactory.
     >
     >
     > -Linda
     >
     >




--
Antonio Goncalves
Software architect and Java Champion

Web site <http://www.antoniogoncalves.org> | Twitter 
<http://twitter.com/agoncal> | Blog
<http://feeds.feedburner.com/AntonioGoncalves> | LinkedIn 
<http://www.linkedin.com/in/agoncal> | Paris JUG
<http://www.parisjug.org>


[javaee-spec users] [jsr342-experts] Re: Platform default data source and JMS connection factory

Antonio Goncalves 05/21/2012

[javaee-spec users] [jsr342-experts] Re: Platform default data source and JMS connection factory

Linda DeMichiel 05/21/2012

[javaee-spec users] [jsr342-experts] Re: Platform default data source and JMS connection factory

Antonio Goncalves 05/21/2012

[javaee-spec users] [jsr342-experts] Re: Platform default data source and JMS connection factory

Linda DeMichiel 05/21/2012
 
 
Close
loading
Please Confirm
Close