On Apr 16, 2009, at 1:25 AM, Mark Struberg wrote:


That might be, I hooked a break point to JtaEntityManager and it has never been reached.

Imho the creation of it should happen as soon as a persistence.xml is there, wdyt?

I dropped a break point in PersistenceBuilder.createEntityManagerFactory(..) and it definitely is getting called and the resulting EntityManagerFactory bound to "openejb/PersistenceUnit/" even when there are no references in the application to the persistence unit.

Seems with that and the code you had in the "obtaining the JtaEntityManager" thread, it would get you most the way there.


-David


--- David Blevins <[email protected]> schrieb am Do, 16.4.2009:

Von: David Blevins <[email protected]>
Betreff: Re: using OpenEJB in JUnit tests
An: [email protected]
Datum: Donnerstag, 16. April 2009, 5:15

On Apr 13, 2009, at 1:45 AM, Mark Struberg wrote:

Hi David!

Do you have any log output you could post?
I've attached a tee of the mvn test output and the
surefire log.

As a trivial implementation you could maybe just
list the
units under openejb/PersistenceUnit/, chop off the
hash code
Thanks for pointing this again! I was not clear enough
in my previous post: the problem is that there isn't any
openejb/PersistenceUnit node at all - I only can find
openejb/ejb.

I debuged through and found that the JtaEntityManager
doesn't get initialised at all, because the
JndiEncBuilder#build() doesn't get called but only the
JndiBuilder#build(). So I have a few questions:
1.) What is the difference between those 2?
2.) How can I force the ContextFactory to call the
JndiEncBuilder or does it make no sense at all?
3.) Is this way to get the JtaEntityManager basically
correct, or is there another way where we still can be sure
that EJBs and WebBeans get the same JtaEntityManager
instance?

Seems like as there are no actual references to the
persistence unit in the app, we simply do not create the
persistence unit.  Doesn't seem quite right, have to
dig closer, but that's my current guess as to why nothing
shows up.

-David



--- David Blevins <[email protected]>
schrieb am Mo, 13.4.2009:
Von: David Blevins <[email protected]>
Betreff: Re: using OpenEJB in JUnit tests
An: [email protected]
Datum: Montag, 13. April 2009, 0:40

On Apr 12, 2009, at 2:41 PM, Mark Struberg wrote:


Hi!

Somehow this doesn't work.

If I startup OpenEJB like the examples do:

Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,

"org.apache.openejb.client.LocalInitialContextFactory");
Context context = new InitialContext(p);

then no JtaEntityManager gets initialised.

Do I have to add additional properties?

persistence.xml and all other things should be
in
place.

The source is currently only in my git repo:
http://ns1.backwork.net/git/index.php?p=openwebbeans.git

Do you have any log output you could post?


Regarding your question on IRC:

[13:32]
<struberg>    hi david! fine to
see you
around :)
[13:32]
<struberg>    I have a little
question
concerning the OpenWebBeans/OpenEJB integration
[13:32]
<struberg>    I started the EJB
container but cannot find my PersistenceUnit in
the JNDI
context
[13:33]
<struberg>    factory =
(EntityManagerFactory)
context.lookup("openejb/PersistenceUnit/" +
unitName);
[13:33]
<struberg>    any ideas?

I mentioned this in the "obtaining the
JtaEntityManager"
thread:

On Mar 25, 2009, at 7:59 PM, David Blevins wrote:

The tricky part of that is the unit names have
a hash
code on them to get around the issue that they
aren't
required to be unique outside the persistence.xml
file and
there can be multiple persistence.xml files in an
app.
As a trivial implementation you could maybe just
list the
units under openejb/PersistenceUnit/, chop off the
hash code
and use the first one with a matching name.
Supporting
the case where the user has multiple units of the
same name
could be a feature to add later.


The long and short of that is we don't use
"openejb/PersistenceUnit/" + unitName as the JNDI
name, so
that won't work as is.

-David





<TEST- org.apache.webbeans.test.geronimo.openejb.OpenEJBIntegrationTest.xml>







Reply via email to