Hi Steve,
Thanks for the explanation. That helps a lot. I'll see if I can get it working
tomorrow morning.
I'll release 4.3.10.Final Thursday. After working 3 late nights in a row, I need to
rest tonight.
Regards,
Gail
----- Original Message -----
From: "Steve Ebersole" <steve(a)hibernate.org>
To: "Gail Badner" <gbadner(a)redhat.com>
Cc: "Scott Marlow" <smarlow(a)redhat.com>, "Sanne Grinovero"
<sanne(a)hibernate.org>, "Galder Zamarreño"
<galder(a)redhat.com>, "Hibernate Dev"
<hibernate-dev(a)lists.jboss.org>
Sent: Wednesday, May 13, 2015 7:03:19 PM
Subject: Re: Another pull request for supporting Infinispan 7.2.1 in 4.3
Well you have to realize that there are 3 classpaths involved here:
1) compiling the main sources (compile)
2) compiling the test sources (testCompile)
3) running the tests (testRuntime)
You can set each of those differently. But instead what you do is to
change all 3 to the same value. Obviously if you ask Gradle to compile
with a different Infinispan version by specifying it in compile
Configuration it is going to recognize that and recompile the main
sources. That's a GoodThing(tm). But really you are doing the wrong
thing. Really you just want to keep the same Infinispan version
(6.whatever) for compile and testCompile. You really just want variance in
testRuntime.
The one concern with this is that Gradle willl then see a "version
conflict". It will see Infinispan 6 in the compile and testCompile (via
compile) configurations, and Infinispan 7 in the testRuntime
configuration. I am not exactly sure what Gradle will do there. But I do
know that you can tell Gradle what to do there... by forcing the version.
In fact ResolutionStrategy is all about these "version conflicts" and what
to do.
So something like this in hibernate-infinispan.gradle:
if ( useInfinispan7ForTesting() ) {
configurations {
testRuntime {
resolutionStrategy {
force 'org.infinispan:infinispan-core:7.2.1.Final`
}
}
}
}
dependencies {
compile( libraries.infinispan ) // 6, as before
...
}
I actually think you can use force to force the version to use even if it
is not a case of a version conflict. That's what the above tries. In
testRuntime there really is not version conflict
for 'org.infinispan:infinispan-core', but we ask Gradle to force
the 'org.infinispan:infinispan-core' version to 7.2.1.Final. That is my
reading of how forced versions work based on the DSL guide. I have not
tried it myself, so I do not know how it works in practice.
On Wed, May 13, 2015 at 7:43 PM, Gail Badner <gbadner(a)redhat.com> wrote:
> I don't think I fully understand Gradle ResolutionStrategy. [1]
>
> I'm looking for something that could be used to change test runtime
> dependencies, without rebuilding the hibernate-infinspan jar. I'm not
> proficient enough with Gradle to know if ResolutionStrategy can be used for
> that, I'll have to look into it after 4.3.10.Final is released.
>
> I did some experimenting though and found that by making the following
> change in libraries.gradle, I can test with a different version of
> Infinispan:
>
> - infinispanVersion = '6.0.0.Final'
> + infinispanVersion = project.hasProperty( 'infinispanVersion' ) ?
> infinispanVersion : '6.0.0.Final'
>
> I can force Hibernate to test using Infinispan 7.2.1.Final with the 7.2
> test configuration using the command:
> ../gradlew test -PinfinispanVersion=7.2.1.Final
> -Dhibernate.cache.infinispan.cfg=src/test/resources/infinispan-7-configs.xml
>
> Unfortunately, it forces source/test code to be rebuilt using Infinispan
> 7.2.1.Final. I would really like to be able to test using the
> hibernate-infinispan jar built using Infinispan 6.0.0.Final as a build
> dependency, because WildFly will be using the Hibernate 4.3.10.Final jar
> built with Infinispan 6.0.0.Final.
>
> I'm going to move forward with releasing 4.3.10.Final and revisit this
> later.
>
> Thanks everyone for your help on getting 4.3 to work with Infinispan
> 7.2.1.Final. It is very much appreciated.
>
> Gail
>
> [1]
>
http://gradle.org/docs/current/dsl/org.gradle.api.artifacts.ResolutionStr...
>
> ----- Original Message -----
> > From: "Scott Marlow" <smarlow(a)redhat.com>
> > To: "Gail Badner" <gbadner(a)redhat.com>, "Steve
Ebersole" <
> steve(a)hibernate.org>
> > Cc: "Sanne Grinovero" <sanne(a)hibernate.org>, "Galder
Zamarreño" <
> galder(a)redhat.com>, "Hibernate Dev"
> > <hibernate-dev(a)lists.jboss.org>
> > Sent: Wednesday, May 13, 2015 11:56:04 AM
> > Subject: Re: Another pull request for supporting Infinispan 7.2.1 in 4.3
> >
> >
> > On 05/13/2015 02:48 PM, Gail Badner wrote:
> > > As suggested by Sanne and Galder, I'll open a new Jira for the commit
> in my
> > > pull request and amend the comment to reflect the new Jira.
> > >
> > > I'll see if I can get "forced version" in Gradle working in
the next
> couple
> > > of hours. If not, I don't want to hold up releasing 4.3.10.Final for
> this.
> > > I can try to get those details worked out later.
> > >
> > > I think that about wraps up what is needed for Hibernate 4.3 to
> support and
> > > test with Infinispan 7.2.1.Final. Unless I hear otherwise, I plan to
> > > release 4.3.10.Final later today, tomorrow at the latest.
> >
> > Awesome, thanks for all of the help Gail in syncing Hibernate up to
> > Infinispan 7.2.1! Thanks to Sanne, Galder & Steve as well. Very much
> > appreciated!
> >
> > I'm not sure of what will be in Infinispan 8.0 but that could need more
> > hibernate-infinispan changes as well. I think that Infinispan 8.0 might
> > find its way into WildFly 10.
> >
> > >
> > > Regards,
> > > Gail
> > >
> > > ----- Original Message -----
> > >> From: "Steve Ebersole" <steve(a)hibernate.org>
> > >> To: "Gail Badner" <gbadner(a)redhat.com>
> > >> Cc: "Sanne Grinovero" <sanne(a)hibernate.org>,
"Scott Marlow"
> > >> <smarlow(a)redhat.com>, "Galder Zamarreño"
> > >> <galder(a)redhat.com>, "Hibernate Dev"
<hibernate-dev(a)lists.jboss.org>
> > >> Sent: Wednesday, May 13, 2015 9:57:24 AM
> > >> Subject: Re: Another pull request for supporting Infinispan 7.2.1 in
> 4.3
> > >>
> > >> Not sure what limitations you mean. All I said was that if you
> wanted to
> > >> allow testing with both you would need to make this conditional and
> expose
> > >> a property to control which to use.
> > >>
> > >> On Wed, May 13, 2015 at 11:29 AM, Gail Badner
<gbadner(a)redhat.com>
> wrote:
> > >>
> > >>> Adding hibernate-dev.
> > >>>
> > >>> No, I did not have a chance to read up on what you suggested. I
> sounded
> > >>> like it had some limitations that would not work, but maybe I
> > >>> misunderstood. I'll look into it today.
> > >>>
> > >>> The last couple of days have been very long. Sorry for the
> oversights.
> > >>>
> > >>> ----- Original Message -----
> > >>>> From: "Steve Ebersole" <steve(a)hibernate.org>
> > >>>> To: "Gail Badner" <gbadner(a)redhat.com>
> > >>>> Cc: "Sanne Grinovero" <sanne(a)hibernate.org>,
"Scott Marlow" <
> > >>> smarlow(a)redhat.com>, "Galder Zamarreño"
> > >>>> <galder(a)redhat.com>
> > >>>> Sent: Wednesday, May 13, 2015 5:33:24 AM
> > >>>> Subject: Re: Another pull request for supporting Infinispan
7.2.1
> in 4.3
> > >>>>
> > >>>> On May 13, 2015 7:32 AM, "Steve Ebersole"
<steve(a)hibernate.org>
> wrote:
> > >>>>>
> > >>>>> 1) This really should be a hibernate-core discussion
> > >>>>
> > >>>> I meant to say hibernate-dev...
> > >>>>
> > >>>>> 2) I already suggested using forced version in Gradle and
gave you
> a
> > >>> link
> > >>>> on how that works. Did you read it? Did you try it?
> > >>>>>
> > >>>>> On May 13, 2015 2:04 AM, "Gail Badner"
<gbadner(a)redhat.com> wrote:
> > >>>>>>
> > >>>>>> Sanne, Scott, and I discussed how Hibernate should
deal with
> > >>> supporting
> > >>>> Infinispan 7.2.1 in 4.3 earlier today. I think the consensus
was it
> > >>>> would
> > >>>> be sufficient to:
> > >>>>>> - specify the Infinispan 7.2 configuration by using
> > >>>> hibernate.cache.infinispan.cfg (so Hibernate wouldn't have
to
> switch if
> > >>>> parsing failed);
> > >>>>>> - run tests manually with Infinispan 7.2 for WildFly
integration
> > >>> testing.
> > >>>>>>
> > >>>>>> I created another pull request:
> > >>>>
https://github.com/hibernate/hibernate-orm/pull/953
> > >>>>>>
> > >>>>>> My pull request incorporated some of Galder's
changes from
> > >>>>
https://github.com/hibernate/hibernate-orm/pull/951.
> > >>>>>>
> > >>>>>> The main differences:
> > >>>>>> - Hibernate will consider the 7.2 configuration as
test code
> > >>>>>> - the 7.2 configuration can be specified using
> > >>>>
> > >>>
> -Dhibernate.cache.infinispan.cfg=src/test/resources/infinispan-7-configs.xml
> > >>>>>>
> > >>>>>> Currently, the only way to run hibernate-infinispan
tests is to
> change
> > >>>> infinispanVersion from 6.0.0.Final to 7.2.1.Final. It would be
nice
> to
> > >>>> be
> > >>>> able to specify infinispanVersion as a environment variable,
> defaulting
> > >>> to
> > >>>> 6.0.0.Final to avoid having to manually update
libraries.gradle.
> > >>>>>>
> > >>>>>> Another consideration is that manually updating
libraries.gradle
> > >>> forces
> > >>>> a re-build using Infinispan 7.2.1 as a dependency.
> > >>>>>>
> > >>>>>> Since WildFly will use a hiberanate-infinispan jar
build against
> > >>>> Infinispan 6.0.0.Final (won't it???), I think it would be
best if we
> > >>> could
> > >>>> run unit tests without rebuilding with Infinispan 7.2.1, but
using
> it as
> > >>> a
> > >>>> run time dependency. I haven't been able to figure out how
to do
> that
> > >>>> though.
> > >>>>>>
> > >>>>>> Anyone have an idea how to do that, even manually?
> > >>>>>>
> > >>>>>> Thoughts on all this?
> > >>>>>>
> > >>>>>> Thanks,
> > >>>>>> Gail
> > >>>>
> > >>>
> > >>
> >
>