On 7 June 2017 at 11:05, Galder Zamarreño <gal...@redhat.com> wrote:
> Moreover:
>
> * The experience of Maven users should never be penalised by uber jars. Uber 
> jar users should be a minority compared with Maven/Gradle...etc users that 
> have dependency engines in place to select which components they want to 
> depend on.
>
> Cheers,
> --
> Galder Zamarreño
> Infinispan, Red Hat
>
>> On 7 Jun 2017, at 12:02, Galder Zamarreño <gal...@redhat.com> wrote:
>>
>> As far as I see it:
>>
>> * infinispan-embedded should never be a dependency in a Maven project.
>>
>> * No uber jars should really be used as Maven dependencies because all the 
>> exclusion that fine grained dependencies allow you to do goes out of the 
>> window when all classes are inside a jar. This is not just theory, I've 
>> personally had such issues.
>>
>> * Uber jars are designed for Ant or other build tool users that don't have a 
>> dependency resolution engine in place.
>>
>> Cheers,
>>
>> p.s. I thought we had already discussed this before?

Memory eviction skills are strong with this team ;)

 - http://lists.jboss.org/pipermail/infinispan-dev/2016-November/017006.html
 - http://lists.jboss.org/pipermail/infinispan-dev/2016-March/016526.html
 - http://lists.jboss.org/pipermail/infinispan-dev/2017-April/017480.html
 - http://lists.jboss.org/pipermail/infinispan-dev/2016-March/016503.html
   -- http://lists.jboss.org/pipermail/infinispan-dev/2016-March/016504.html
 - http://lists.jboss.org/pipermail/infinispan-dev/2015-September/016187.html
 - ...



>> --
>> Galder Zamarreño
>> Infinispan, Red Hat
>>
>>> On 7 Jun 2017, at 11:50, Sebastian Laskawiec <slask...@redhat.com> wrote:
>>>
>>> Hey,
>>>
>>> The change was introduced by this commit [1] and relates to this JIRAs 
>>> [2][3]. The root cause is in [3].
>>>
>>> Imagine a scenario where you add JCache module to your together 
>>> infinispan-embedded. If your classpath was constructed in such a way that 
>>> infinispan-embedded was before infinispan-core (classpath is scanned from 
>>> left to right in standalone apps), we could get a relocated (uber jars move 
>>> some classes into other packages) logger. That caused class mismatch 
>>> errors. It is worth to mention that it will happen to all relocated 
>>> classes, logger was just an example. And we need to relocate them, since a 
>>> user might want to use his own, newer version of DMR or any other library. 
>>> So there's no perfect solution here.
>>>
>>> Now a lot of time passed since then and we changed quite a few things. So 
>>> this topic probably needs to be revisited.
>>>
>>> So the first question that we should ask, shall we allow putting jcache and 
>>> infinispan-embedded together on the classpath. If the answer is yes, I 
>>> believe it should stay as it is (since the user always have a choice 
>>> whether he wants to use jcache with or without uber jar). The same question 
>>> needs to be asked for Spring modules as well as all cache stores. The 
>>> behavior needs to be consistent across all those modules.
>>>
>>> If the answer is no (which is also valid because jcache is already present 
>>> in embedded uber jar), we should migrate all JBoss Logging references to 
>>> Infinispan Common Logging (as Tristan did here [4]) and we can make 
>>> infinispan-core as a compile time dependency to jcache. Even though 
>>> migrating to Infinispan logger is not necessary, this way we won't break 
>>> users app which used infinispan-embedded + jcache approach. Of course the 
>>> same applies to Spring and Cache stores modules.
>>>
>>> I think the latter approach deserves some exploration. I would vote for 
>>> moving that way.
>>>
>>> Thanks,
>>> Sebastian
>>>
>>> [1] 
>>> https://github.com/infinispan/infinispan/commit/720f158cce38d86b292e1ce77b75509342007739
>>> [2] https://issues.jboss.org/browse/ISPN-6295
>>> [3] https://issues.jboss.org/browse/ISPN-6132
>>> [4] https://github.com/infinispan/infinispan/pull/4140/files
>>>
>>>
>>> On Wed, Jun 7, 2017 at 11:19 AM Galder Zamarreño <gal...@redhat.com> wrote:
>>> Hi all,
>>>
>>> Re: 
>>> https://github.com/spring-projects/spring-boot/pull/9417#discussion_r120375579
>>>
>>> Stéphane makes a good point there, why did we make core provided 
>>> dependency? It does feel a bit of a pain that anyone that depends on jcache 
>>> embedded also needs to depend on core.
>>>
>>> Any more details behind this decision?
>>>
>>> Cheers,
>>> --
>>> Galder Zamarreño
>>> Infinispan, Red Hat
>>>
>>> --
>>> SEBASTIAN ŁASKAWIEC
>>> INFINISPAN DEVELOPER
>>> Red Hat EMEA
>>>
>>
>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to