On 2/7/15 4:03 PM, andrei ilitchev
wrote:
In an unrelated thread lukas.jungmann@xxxxxxxxxx
wrote:
"we're on wls, pu is coming from spring - is instance of
org.springframework.jdbc.datasource.SimpleDriverDataSource or sth
similar, check could be just for the package name"
this is what I've done:
-I briefly went through
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/orm.html#orm-jpa
-I took samples from
'https://github.com/spring-projects/spring-integration-samples'
-I configured 'basic/jpa' sample to be using eclipselink (see:
https://github.com/spring-projects/spring-integration-samples/tree/master/basic/jpa)
-I run that sample under the debugger
=> I saw that in this particular case PersistenceUnitInfo
implementation which gets to EL is an instance of
org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo
and it holds an instance of
org.springframework.jdbc.datasource.SimpleDriverDataSource in
nonJtaDataSource field
--lukas
Could that be used to autodetect Spring?
On any ap or on wls only?
Thanks,
Andrei
On 2/6/2015 4:26 PM, andrei ilitchev
wrote:
On 2/6/2015 4:00 PM, Dmitry
Kornilov wrote:
If only we could somehow detect
in predeploy that the persistence unit is used with
Spring then we could fix autodetection (if Spring
then NoServerPlatform or better
serverPlatform.disableJTA()).
I like an idea of Spring detector. Implementing it will
bring server platform auto detection advantages without
breaking backwards compatibility. But I see a problem
implementing it. Class loader approach won’t work here.
It is possible to try instantiating
org.springframework.core.SpringVersion class by
reflection. SpringVersion.getVersion() can be used to get
a version of Spring codebase.
But it just a proof of existence Spring in class path.
Any ideas?
May be Spring appears on the stack when predeploy is called?
Otherwise alternatives are:
1. Remove server platform autodetection.
A new TargetServer.Auto value could be defined to enable use of
autodetection.
1.1 Pro:
Spring users need no changes in their setup;
1.2 Con: Non Sprint users must specify server
platform;
1.3 Backwards compatibility
That's a big one.
2. Keep
server platform autodetection.
2.1 Con: Spring users must specify NoServerPlatform
(or better a newly defined SpringPlatform);
2.2 Pro: Non Sprint users need not specify server
platform.
2.3 Pro: SpringPlatform would allow to use correct
server platform (wls, was) but with disabled jta, that
would allow to perform serverPlatform-specific actions
correctly (like unwrapping data source connection).
It is possible to do now specifying both target-server
and transaction-type=RESOURCE_LOCAL. So I see no advantage
here.
That wouldn't work in JTA case because jtaDataSource specified
in persistence.xml in RESOURCE_LOCAL case would be ignored.
Instead of SpringPlatform better define a new property
eclipselink.spring (false by default) - that way would work both
with specified and autodetected server platform.
Thanks,
Dmitry
On 2/6/2015 12:30 PM,
Dmitry Kornilov wrote:
> That
time I didn't dig deep enough. This case is
complicated.
Can you explain the scenario better
so I can try to understand what the problem
is?
I have explained it more than once. Please scroll
down the history. It's there.
> Spring is widely used. I don't know
the exact statistic data but it could be the
most used case. I am still not sure that
it's a good idea to break it.
Sure, I get that Spring is popular.
Is this perhaps a bug in Spring's usage of
the EclipseLink / JPA APIs?
There is a bug? The defaults were used.
Rick, I don't think that we can convince each other.
This conversation gets useless and there is no point
to continue it. I would like to hear some fresh
opinion from other committers.
Thanks,
Dmitry
_______________________________________________
eclipselink-dev mailing list
eclipselink-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/eclipselink-dev
_______________________________________________
eclipselink-dev mailing list
eclipselink-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/eclipselink-dev
_______________________________________________
eclipselink-dev mailing list
eclipselink-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password,
or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/eclipselink-dev
_______________________________________________
eclipselink-dev mailing list
eclipselink-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/eclipselink-dev
_______________________________________________
eclipselink-dev mailing list
eclipselink-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/eclipselink-dev
_______________________________________________
eclipselink-dev mailing list
eclipselink-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/eclipselink-dev
|