That's cool but IMO it should be in the spec and not in DS. Moreover you need a name if you have several datasources.
- Romain Le 6 mai 2012 16:17, "Arne Limburg" <[email protected]> a écrit : > Never mind ;-) > Maybe it is better to provide qualifiers for all the JPA properties? Like > this: > > public class MyJpaConfig { > > @Produces > @NonJtaDataSource > @Exclude(exceptIfProjectStage = ProjectStage.IntegrationTest.class) > public String getIntegrationTestDataSource() { > ... > } > > @Produces > @TransactionType > @Exclude(exceptIfProjectStage = ProjectStage.Development.class) > public String getDevelopmentTransactionType() { > ... > } > > @Produces > @JdbcUrl > @Exclude(exceptIfProjectStage = ProjectStage.Development.class) > public String getDevelopmentJdbcUrl() { > ... > } > } > > Then we can feed the createEntityManager method with this properties... > > - Arne > > -----Ursprüngliche Nachricht----- > Von: Romain Manni-Bucau [mailto:[email protected]] > Gesendet: Sonntag, 6. Mai 2012 16:10 > An: [email protected] > Betreff: Re: AW: AW: AW: AW: AW: AW: [DISCUSS] deltaspike-jpa module > features > > Yep but an em needs an emf ;) > Le 6 mai 2012 16:05, "Arne Limburg" <[email protected]> a > écrit : > > > OK, I think, this is not correct since it expresses a dependency to an > > EntityManager and not to an EntityManagerFactory (in opposition to > > @PersistenceUnit). > > > > -----Ursprüngliche Nachricht----- > > Von: Romain Manni-Bucau [mailto:[email protected]] > > Gesendet: Sonntag, 6. Mai 2012 16:00 > > An: [email protected] > > Betreff: Re: AW: AW: AW: AW: AW: [DISCUSS] deltaspike-jpa module > > features > > > > It tomee we create the entitymanagerfactory associated. > > Le 6 mai 2012 15:53, "Arne Limburg" <[email protected]> a > > écrit : > > > > > OK and the meaning of this annotation at class-level would be: > > > "a dependency on a container-managed entity manager and its > > > associated persistence context." That's perfectly the semantics we > > > need ;-) > > > > > > But what would a jee container do when he observes such annotation > > > at class-level? I can't read it from the spec... > > > I think, we have to try... Or does someone at this list know? > > > > > > -----Ursprüngliche Nachricht----- > > > Von: Romain Manni-Bucau [mailto:[email protected]] > > > Gesendet: Sonntag, 6. Mai 2012 15:49 > > > An: [email protected] > > > Betreff: Re: AW: AW: AW: AW: [DISCUSS] deltaspike-jpa module > > > features > > > > > > The container will scan persistencecontext annotation with no link > > > with cdi. > > > Le 6 mai 2012 15:46, "Arne Limburg" <[email protected]> > > > a écrit : > > > > > > > If so, what would be the semantic of such definition? > > > > Btw. that classes would only become CDI beans when the deployment > > > > is in the correct project stage. Otherwise we would veto them > > > > away, before they become beans... > > > > And, which part of the jee container would scan that class? My > > > > guess is, that it would be the responsibility of the CDI > implementation. > > > > And > > > > - just a second guess - they ignore it... > > > > > > > > I'll take a look into the JPA spec to see what the official > > > > semantic of the usage I proposed would be. But, I am afraid that > > > > this is underspecified... > > > > > > > > -----Ursprüngliche Nachricht----- > > > > Von: Romain Manni-Bucau [mailto:[email protected]] > > > > Gesendet: Sonntag, 6. Mai 2012 15:40 > > > > An: [email protected] > > > > Betreff: Re: AW: AW: AW: [DISCUSS] deltaspike-jpa module features > > > > > > > > Cdi is in jee so jee containers scans cdi beans and same for > > > > resources (@persistencontext). > > > > Le 6 mai 2012 15:36, "Arne Limburg" > > > > <[email protected]> a écrit : > > > > > > > > > If not, we can use other annotations, but I think jee containers > > > > > just scan EJBs... > > > > > > > > > > -----Ursprüngliche Nachricht----- > > > > > Von: Romain Manni-Bucau [mailto:[email protected]] > > > > > Gesendet: Sonntag, 6. Mai 2012 15:28 > > > > > An: [email protected] > > > > > Betreff: Re: AW: AW: [DISCUSS] deltaspike-jpa module features > > > > > > > > > > Not sure it works in a jee container. > > > > > > > > > > - Romain > > > > > Le 6 mai 2012 15:26, "Arne Limburg" > > > > > <[email protected]> a écrit : > > > > > > > > > > > You could configure your production jta-datasource in the > > > > > > persistence.xml and add the following bean to your test > deployment: > > > > > > > > > > > > @Exclude(exceptIfProjectStage = > > > > > > ProjectStage.IntegrationTest.class) > > > > > > @PersistenceContext(unitName = "myPU", properties = > > > > > > @PersistenceProperty(name = > > > > > > "javax.persistence.nonJtaDataSource", > > > > > > value = > > > > > > "java:/comp/env/myDS")) > > > > > > public class MyIntegrationTestConfiguration { } > > > > > > > > > > > > For local testing, you could even switch off JNDI: > > > > > > @Exclude(exceptIfProjectStage = > > > > > > ProjectStage.Development.class) @PersistenceContext(unitName = > > > > > > "myPU", properties = {@PersistenceProperty(name = > > > > > > "javax.persistence.transactionType", > > > > > > value = "RESOURCE_LOCAL"), > > > > > > > > > > > > @PersistenceProperty(name = > > > > > > "javax.persistence.jdbc.url", value = "jdbc:h2:mem:myDB"), > > > > > > ...}) public class MyDevelopmentConfiguration { } > > > > > > > > > > > > WDYT? > > > > > > > > > > > > Romain, > > > > > > Noone needs to repackage his application, since we can put > > > > > > this properties into a map and use it as the second parameter > > > > > > of > > > > > emf.createEntityManager... > > > > > > > > > > > > - Arne > > > > > > > > > > > > -----Ursprüngliche Nachricht----- > > > > > > Von: Romain Manni-Bucau [mailto:[email protected]] > > > > > > Gesendet: Sonntag, 6. Mai 2012 15:14 > > > > > > An: [email protected] > > > > > > Betreff: Re: AW: [DISCUSS] deltaspike-jpa module features > > > > > > > > > > > > How do you manage it from persistence.xml if you dont > > > > > > repackage your archive as Mark said? > > > > > > > > > > > > Personally i agree ;) > > > > > > > > > > > > - Romain > > > > > > Le 6 mai 2012 15:06, "Arne Limburg" > > > > > > <[email protected]> a écrit : > > > > > > > > > > > > > OK, > > > > > > > but do we really need a container-independent way for > > > > JNDI-DataSources? > > > > > > > What's the use case for it? > > > > > > > The user always knows his container and thus his specific > > > JNDI-name. > > > > > > > > > > > > > > I think we need an easy way for users to configure different > > > > > > > JNDI-DataSources for different deployment scenarios, like > > > > > > > - a JTA-datasource for my JBoss AS 7 in production > > > > > > > - a Non-JTA-datasource from another JNDI-location for the > > > > > > > Tomcat for testing > > > > > > > - a RESOURCE_LOCAL EntityManager for local testing... > > > > > > > > > > > > > > We need to find an easy way for the users to configure the > > > > > > > JNDI-location, but imho we don't need to handle different > > > > > > > JNDI-locations > > > > > > in our code? > > > > > > > > > > > > > > WDYT? Am I missing a use case? > > > > > > > > > > > > > > Cheers, > > > > > > > Arne > > > > > > > > > > > > > > -----Ursprüngliche Nachricht----- > > > > > > > Von: Romain Manni-Bucau [mailto:[email protected]] > > > > > > > Gesendet: Sonntag, 6. Mai 2012 14:49 > > > > > > > An: Mark Struberg; [email protected] > > > > > > > Betreff: Re: [DISCUSS] deltaspike-jpa module features > > > > > > > > > > > > > > ConfigurableDataSource doesnt solve it. If you build the emf > > > > > > > from persistence info you manage it yourself. It should be > > > > > > > IMO a compatibility mode and spec you be fixed. > > > > > > > > > > > > > > But well, the most important subjects are not here, > > > > > > > pagination, dynamic dao etc are really more valuable. > > > > > > > > > > > > > > - Romain > > > > > > > Le 6 mai 2012 14:44, "Mark Struberg" <[email protected]> a > > écrit : > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > The problem here is that this is NOT under our control - > > > > > > > > this is not even CDI related! > > > > > > > > > > > > > > > > You need to _exactly_ specify the JNDI location in your > > > > > > persistence.xml. > > > > > > > > And this info get's parsed by JPA or the EE container at > > > > > > > > deploy > > > > time. > > > > > > > > > > > > > > > > > > > > > > > > Maybe there's a trick with a PersistenceUnitInfo. But > > > > > > > > since those are also managed by the server (and thus show > > > > > > > > the same unspecified > > > > > > > > behaviour) we imo cannot leverage those. > > > > > > > > > > > > > > > > LieGrue, > > > > > > > > strub > > > > > > > > > > > > > > > > > > > > > > > > >________________________________ > > > > > > > > > From: Romain Manni-Bucau <[email protected]> > > > > > > > > >To: Mark Struberg <[email protected]>; > > > > > > > > [email protected] > > > > > > > > >Sent: Sunday, May 6, 2012 2:37 PM > > > > > > > > >Subject: Re: [DISCUSS] deltaspike-jpa module features > > > > > > > > > > > > > > > > > > > > > > > > > > >I understand. On another side how many differeny > > > > > > > > >locations are > > > > > there? > > > > > > > > Isnt it manageable? > > > > > > > > >- Romain > > > > > > > > >Le 6 mai 2012 14:29, "Mark Struberg" <[email protected]> > > > > > > > > >a écrit > > > > : > > > > > > > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > >>PS: I _fully_ agree that this mess should best get fixed > > > > > > > > >>in > > > EE7. > > > > > > > > >>But > > > > > > > > sadly we also need to support older containers! > > > > > > > > >> > > > > > > > > >>I know about folks who have OWB and CODI running on old > > > > > > > > >>WebSphere > > > > > > > > >>6 and > > > > > > > > 7 servers. And others who use OWB on WebLogic 10.3. And > > > > > > > > those companies are big banks, stock exchanges and > > > > > > > > insurrance companies > > > > > > > > - they cannot easily upgrade to a new server... > > > > > > > > >> > > > > > > > > >>LieGrue, > > > > > > > > >>strub > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >>>________________________________ > > > > > > > > >>> From: Mark Struberg <[email protected]> > > > > > > > > >>>To: Romain Manni-Bucau <[email protected]>; > > > > > > > > >>>deltaspike < > > > > > > > > [email protected]> > > > > > > > > >>>Sent: Sunday, May 6, 2012 2:14 PM > > > > > > > > >>>Subject: Re: [DISCUSS] deltaspike-jpa module features > > > > > > > > >>> > > > > > > > > >>> > > > > > > > > >>> > > > > > > > > >>>No, the container is NOT buggy, because it's simply NOT > > > defined! > > > > > > > > >>>That's the whole mess about JNDI... > > > > > > > > >>> > > > > > > > > >>>LieGrue, > > > > > > > > >>>strub > > > > > > > > >>> > > > > > > > > >>> > > > > > > > > >>> > > > > > > > > >>> > > > > > > > > >>>>________________________________ > > > > > > > > >>>> From: Romain Manni-Bucau <[email protected]> > > > > > > > > >>>>To: Mark Struberg <[email protected]> > > > > > > > > >>>>Sent: Sunday, May 6, 2012 2:01 PM > > > > > > > > >>>>Subject: Re: [DISCUSS] deltaspike-jpa module features > > > > > > > > >>>> > > > > > > > > >>>> > > > > > > > > >>>>So this container is buggy, report an issue ;) > > > > > > > > >>>>Thinking of it this jndi path issue couldnt be > > > > > > > > >>>>resolved by > > > > > > > > configresolvers in ds? > > > > > > > > >>>>- Romain > > > > > > > > >>>>Le 6 mai 2012 13:58, "Mark Struberg" > > > > > > > > >>>><[email protected]> a > > > > > écrit : > > > > > > > > >>>> > > > > > > > > >>>>yes, that crashes the container... > > > > > > > > >>>>> > > > > > > > > >>>>> > > > > > > > > >>>>> > > > > > > > > >>>>> > > > > > > > > >>>>> > > > > > > > > >>>>>>________________________________ > > > > > > > > >>>>>> From: Romain Manni-Bucau <[email protected]> > > > > > > > > >>>>>>To: Mark Struberg <[email protected]>; > > > > > > > > [email protected] > > > > > > > > >>>>>>Sent: Sunday, May 6, 2012 1:52 PM > > > > > > > > >>>>>>Subject: Re: [DISCUSS] deltaspike-jpa module > > > > > > > > >>>>>>features > > > > > > > > >>>>>> > > > > > > > > >>>>>> > > > > > > > > >>>>>>Mark, did you try providing a name starting with java:? > > > > > > > > >>>>>>- Romain > > > > > > > > >>>>>>Le 6 mai 2012 13:49, "Mark Struberg" > > > > > > > > >>>>>><[email protected]> a > > > > > > écrit : > > > > > > > > >>>>>> > > > > > > > > >>>>>> > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>David, exactly this doesn't work out in practice! > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>look at jboss5 datasource xml as an example: > > > > > > > > >>>>>>> > > > > > > > > >>>>>>><?xml version="1.0" encoding="UTF-8"?> <datasources> > > > > > > > > >>>>>>> <local-tx-datasource> > > > > > > > > >>>>>>> <jndi-name>myDS</jndi-name> > > > > > > > > >>>>>>> > > > > > > > > <connection-url>jdbc:postgresql://someserver:5432/someDb</ > > > > > > > > co > > > > > > > > nn > > > > > > > > ec > > > > > > > > ti > > > > > > > > on > > > > > > > > -u > > > > > > > > rl> > > > > > > > > >>>>>>> <user-name>user</user-name> > > > > > > > > >>>>>>> <password>pwd</password> > > > > > > > > >>>>>>> > > > > > > > > <driver-class>org.postgresql.Driver</driver-class> > > > > > > > > >>>>>>> </local-tx-datasource> </datasources> > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>This will create the following JNDI location in > > JBossAS5: > > > > > > > > >>>>>>>java:/myDS > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>NO comp, NO lang, NO other qualifier. > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>Configuring the same in Geronimo gives you > > > > > > > > >>>>>>>java:/comp/env/myDS and it's again COMPLETEY > > > > > > > > >>>>>>>different in JBossAS6, AS7, Glassfish, > > > > > > > > TomEE, etc > > > > > > > > >>>>>>> > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>Thus: which JNDI location would you configure in > > > > > > > > >>>>>>>your > > > > > > > > persistence.xml? > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>That's the reason why we came up with the > > > > > > ConfigurableDataSource. > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>Of course, we need to extend this concept and > > > > > > > > >>>>>>>create a > > > > > > > > >>>>>>> > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>public interface ConfigurableXaDataSource extends > > > > > > > > ConfigurableDataSource, XaDataSource {} > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>See what I mean? > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>LieGrue, > > > > > > > > >>>>>>>strub > > > > > > > > >>>>>>> > > > > > > > > >>>>>>> > > > > > > > > >>>>>>> > > > > > > > > >>>>>>> > > > > > > > > >>>>>>>----- Original Message ----- > > > > > > > > >>>>>>>> From: David Blevins <[email protected]> > > > > > > > > >>>>>>>> To: [email protected]; Mark > > > > > > > > >>>>>>>> Struberg < > > > > > > > > [email protected]> > > > > > > > > >>>>>>>> Cc: > > > > > > > > >>>>>>>> Sent: Sunday, May 6, 2012 1:25 PM > > > > > > > > >>>>>>>> Subject: Re: [DISCUSS] deltaspike-jpa module > > > > > > > > >>>>>>>> features > > > > > > > > >>>>>>>> > > > > > > > > >>>>>>>> > > > > > > > > >>>>>>>> On May 6, 2012, at 2:37 AM, Mark Struberg wrote: > > > > > > > > >>>>>>>> > > > > > > > > >>>>>>>>>> In plain Tomcat or Jetty servers this needs > > > > > > > > >>>>>>>>>> to be configured in a > > > > > > > > container-specific way. > > > > > > > > >>>>>>>>> The problem with the container specific stuff > > > > > > > > >>>>>>>>> is that every > > > > > > > > container > > > > > > > > >>>>>>>> serves the xml configured datasource on a > > > > > > > > >>>>>>>> different location in > > > > > > > > JNDI! So you > > > > > > > > >>>>>>>> cannot provide a container independent > > > > > > > > >>>>>>>> implementation that way :/ > > > > > > > > >>>>>>>> > > > > > > > > >>>>>>>> The portable way would be to declare your > > > > > > > > >>>>>>>> datasource properly via > > > > > > > > >>>>>>>> @Resource(name="java:app/Foo", > > > > > > > > >>>>>>>> type=DataSource.class) or via <resource-ref> xml. > > > > > > > > >>>>>>>> > > > > > > > > >>>>>>>> Most servers can map those references with little > > > > > > > > >>>>>>>> to no > > > > > > config. > > > > > > > > >>>>>>>> > > > > > > > > >>>>>>>> > > > > > > > > >>>>>>>> -David > > > > > > > > >>>>>>>> > > > > > > > > >>>>>>> > > > > > > > > >>>>>> > > > > > > > > >>>>>> > > > > > > > > >>>> > > > > > > > > >>>> > > > > > > > > >>> > > > > > > > > >>> > > > > > > > > >>> > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
