Alright seems fine to me.<br><br><div class="gmail_quote"><div dir="ltr">On Wed, Mar 1, 2017, 9:27 AM Tristan Tarrant &lt;<a href="mailto:ttarrant@redhat.com">ttarrant@redhat.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 01/03/17 13:01, Dan Berindei wrote:<br class="gmail_msg">
&gt; On Wed, Mar 1, 2017 at 10:18 AM, Radim Vansa &lt;<a href="mailto:rvansa@redhat.com" class="gmail_msg" target="_blank">rvansa@redhat.com</a>&gt; wrote:<br class="gmail_msg">
&gt;&gt; I still think that if the cache is already defined, defineConfiguration<br class="gmail_msg">
&gt;&gt; should throw an exception. This javadoc was written 7 years ago [1],<br class="gmail_msg">
<br class="gmail_msg">
&gt; I agree with throwing an exception in defineConfiguration(...) when<br class="gmail_msg">
&gt; that cache is already defined.<br class="gmail_msg">
<br class="gmail_msg">
+1<br class="gmail_msg"></blockquote></div><div><br></div><div>I get a lot of tests to change and remove now 😁</div><div><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br class="gmail_msg">
&gt; getCache(cache, configurationName) when the cache is already defined,<br class="gmail_msg">
&gt; I&#39;d just ignore the new configuration (as we already ignore it when<br class="gmail_msg">
&gt; the cache is runninng) and maybe log a warning telling people to use<br class="gmail_msg">
&gt; defineConfiguration(cacheName, configurationName, new<br class="gmail_msg">
&gt; ConfigurationBuilder().build()) + getCache(cacheName).<br class="gmail_msg">
<br class="gmail_msg">
+1<br class="gmail_msg">
<br class="gmail_msg">
Tristan<br class="gmail_msg">
<br class="gmail_msg">
&gt;&gt; R.<br class="gmail_msg">
&gt;&gt;<br class="gmail_msg">
&gt;&gt; [1]<br class="gmail_msg">
&gt;&gt; <a href="https://github.com/infinispan/infinispan/commit/73d99d37ebfb8af6b64df6a7579a2448deacbde7#diff-e2b618b97769a45ec42eb5910a8c2119R62" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/infinispan/infinispan/commit/73d99d37ebfb8af6b64df6a7579a2448deacbde7#diff-e2b618b97769a45ec42eb5910a8c2119R62</a><br class="gmail_msg">
&gt;&gt;<br class="gmail_msg">
&gt;&gt; On 02/28/2017 10:51 PM, William Burns wrote:<br class="gmail_msg">
&gt;&gt;&gt; So while I was trying to work on this, I have to admit I am even more<br class="gmail_msg">
&gt;&gt;&gt; torn in regards to what to do.  Looking at [1] it looks like the<br class="gmail_msg">
&gt;&gt;&gt; template should only be applied if the cache configuration is not<br class="gmail_msg">
&gt;&gt;&gt; currently defined.  Unfortunately it doesn&#39;t work this way and always<br class="gmail_msg">
&gt;&gt;&gt; applies this template to any existing configuration. So I am thinking<br class="gmail_msg">
&gt;&gt;&gt; an alternative is to instead make it work as the documentation states,<br class="gmail_msg">
&gt;&gt;&gt; only using the template if the cache is not currently defined. This<br class="gmail_msg">
&gt;&gt;&gt; seems more logical to me at least.<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; With that change the getCache(String, String) could stay as long as it<br class="gmail_msg">
&gt;&gt;&gt; is documented that a template is only applied if no cache<br class="gmail_msg">
&gt;&gt;&gt; configuration exists.<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; What do you guys think?<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; [1]<br class="gmail_msg">
&gt;&gt;&gt; <a href="https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/manager/EmbeddedCacheManager.java#L84" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/manager/EmbeddedCacheManager.java#L84</a><br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; On Mon, Feb 27, 2017 at 10:09 AM William Burns &lt;<a href="mailto:mudokonman@gmail.com" class="gmail_msg" target="_blank">mudokonman@gmail.com</a><br class="gmail_msg">
&gt;&gt;&gt; &lt;mailto:<a href="mailto:mudokonman@gmail.com" class="gmail_msg" target="_blank">mudokonman@gmail.com</a>&gt;&gt; wrote:<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;      On Mon, Feb 27, 2017 at 9:55 AM Dan Berindei<br class="gmail_msg">
&gt;&gt;&gt;      &lt;<a href="mailto:dan.berindei@gmail.com" class="gmail_msg" target="_blank">dan.berindei@gmail.com</a> &lt;mailto:<a href="mailto:dan.berindei@gmail.com" class="gmail_msg" target="_blank">dan.berindei@gmail.com</a>&gt;&gt; wrote:<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;          I would go for option 2.<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;      Do you think a WARN message will be enough? I am a bit weary about<br class="gmail_msg">
&gt;&gt;&gt;      this option myself.<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;          We already started disconnecting the cache definition and<br class="gmail_msg">
&gt;&gt;&gt;          retrieval,<br class="gmail_msg">
&gt;&gt;&gt;          at least `getCache(name)` doesn&#39;t define a new cache based on the<br class="gmail_msg">
&gt;&gt;&gt;          default configuration any more. So I don&#39;t think it would be<br class="gmail_msg">
&gt;&gt;&gt;          too much,<br class="gmail_msg">
&gt;&gt;&gt;          even at this point, to deprecate all the overloads of<br class="gmail_msg">
&gt;&gt;&gt;          `getCache` that<br class="gmail_msg">
&gt;&gt;&gt;          can define a new cache and advise users to use<br class="gmail_msg">
&gt;&gt;&gt;          `defineConfiguration`<br class="gmail_msg">
&gt;&gt;&gt;          instead.<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;      Hrmm I like the idea of deprecating the overloads :)<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;          Cheers<br class="gmail_msg">
&gt;&gt;&gt;          Dan<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;          On Mon, Feb 27, 2017 at 4:31 PM, William Burns<br class="gmail_msg">
&gt;&gt;&gt;          &lt;<a href="mailto:mudokonman@gmail.com" class="gmail_msg" target="_blank">mudokonman@gmail.com</a> &lt;mailto:<a href="mailto:mudokonman@gmail.com" class="gmail_msg" target="_blank">mudokonman@gmail.com</a>&gt;&gt; wrote:<br class="gmail_msg">
&gt;&gt;&gt;          &gt; When working on another project using Infinispan the code<br class="gmail_msg">
&gt;&gt;&gt;          being used was a<br class="gmail_msg">
&gt;&gt;&gt;          &gt; bit interesting and I don&#39;t think our template configuration<br class="gmail_msg">
&gt;&gt;&gt;          handling was<br class="gmail_msg">
&gt;&gt;&gt;          &gt; expecting it do so in such a way.<br class="gmail_msg">
&gt;&gt;&gt;          &gt;<br class="gmail_msg">
&gt;&gt;&gt;          &gt; Essentially the code defined a template for a distributed<br class="gmail_msg">
&gt;&gt;&gt;          cache as well as<br class="gmail_msg">
&gt;&gt;&gt;          &gt; some named caches.  Then whenever a cache is retrieved it<br class="gmail_msg">
&gt;&gt;&gt;          would pass the<br class="gmail_msg">
&gt;&gt;&gt;          &gt; given name and always the distributed cache template.<br class="gmail_msg">
&gt;&gt;&gt;          Unfortunately with<br class="gmail_msg">
&gt;&gt;&gt;          &gt; the way templates work they essentially redefine a cache<br class="gmail_msg">
&gt;&gt;&gt;          first so the actual<br class="gmail_msg">
&gt;&gt;&gt;          &gt; cache configuration was wiped out.  In this example I was<br class="gmail_msg">
&gt;&gt;&gt;          able to get the<br class="gmail_msg">
&gt;&gt;&gt;          &gt; code to change to using a default cache instead, which is<br class="gmail_msg">
&gt;&gt;&gt;          the behavior that<br class="gmail_msg">
&gt;&gt;&gt;          &gt; is needed.<br class="gmail_msg">
&gt;&gt;&gt;          &gt;<br class="gmail_msg">
&gt;&gt;&gt;          &gt; The issue though at hand is whether we should allow a user<br class="gmail_msg">
&gt;&gt;&gt;          to call getCache<br class="gmail_msg">
&gt;&gt;&gt;          &gt; in such a way. My initial thought is to have it throw some<br class="gmail_msg">
&gt;&gt;&gt;          sort of<br class="gmail_msg">
&gt;&gt;&gt;          &gt; configuration exception when this is invoked. But there are<br class="gmail_msg">
&gt;&gt;&gt;          some possible<br class="gmail_msg">
&gt;&gt;&gt;          &gt; options.<br class="gmail_msg">
&gt;&gt;&gt;          &gt;<br class="gmail_msg">
&gt;&gt;&gt;          &gt; 1. Throw a configuration exception not allowing a user to<br class="gmail_msg">
&gt;&gt;&gt;          use a template<br class="gmail_msg">
&gt;&gt;&gt;          &gt; with an already defined cache. This has a slight disconnect<br class="gmail_msg">
&gt;&gt;&gt;          between<br class="gmail_msg">
&gt;&gt;&gt;          &gt; configuration and runtime, since if a user adds a new<br class="gmail_msg">
&gt;&gt;&gt;          definition it could<br class="gmail_msg">
&gt;&gt;&gt;          &gt; cause runtime issues.<br class="gmail_msg">
&gt;&gt;&gt;          &gt; 2. Log an error/warning message when this occurs. Is this<br class="gmail_msg">
&gt;&gt;&gt;          enough though?<br class="gmail_msg">
&gt;&gt;&gt;          &gt; Still could have runtime issues that are possibly undetected.<br class="gmail_msg">
&gt;&gt;&gt;          &gt; 3. Merge the configurations together applying the template<br class="gmail_msg">
&gt;&gt;&gt;          first.  This<br class="gmail_msg">
&gt;&gt;&gt;          &gt; would be akin to how default cache works currently, but you<br class="gmail_msg">
&gt;&gt;&gt;          would get to<br class="gmail_msg">
&gt;&gt;&gt;          &gt; define your default template configuration at runtime. This<br class="gmail_msg">
&gt;&gt;&gt;          sounded like the<br class="gmail_msg">
&gt;&gt;&gt;          &gt; best option to me, but the problem is what if someone calls<br class="gmail_msg">
&gt;&gt;&gt;          getCache using<br class="gmail_msg">
&gt;&gt;&gt;          &gt; the same cache name but a different template. This could get<br class="gmail_msg">
&gt;&gt;&gt;          hairy as well.<br class="gmail_msg">
&gt;&gt;&gt;          &gt;<br class="gmail_msg">
&gt;&gt;&gt;          &gt; Really thinking about the future, disconnecting the cache<br class="gmail_msg">
&gt;&gt;&gt;          definition and<br class="gmail_msg">
&gt;&gt;&gt;          &gt; retrieval would be the best option, but we can&#39;t do that<br class="gmail_msg">
&gt;&gt;&gt;          this late in the<br class="gmail_msg">
&gt;&gt;&gt;          &gt; game.<br class="gmail_msg">
&gt;&gt;&gt;          &gt;<br class="gmail_msg">
&gt;&gt;&gt;          &gt; What do you guys think?<br class="gmail_msg">
&gt;&gt;&gt;          &gt;<br class="gmail_msg">
&gt;&gt;&gt;          &gt;  - Will<br class="gmail_msg">
&gt;&gt;&gt;          &gt;<br class="gmail_msg">
&gt;&gt;&gt;          &gt; _______________________________________________<br class="gmail_msg">
&gt;&gt;&gt;          &gt; infinispan-dev mailing list<br class="gmail_msg">
&gt;&gt;&gt;          &gt; <a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a><br class="gmail_msg">
&gt;&gt;&gt;          &lt;mailto:<a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a>&gt;<br class="gmail_msg">
&gt;&gt;&gt;          &gt; <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br class="gmail_msg">
&gt;&gt;&gt;          _______________________________________________<br class="gmail_msg">
&gt;&gt;&gt;          infinispan-dev mailing list<br class="gmail_msg">
&gt;&gt;&gt;          <a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a><br class="gmail_msg">
&gt;&gt;&gt;          &lt;mailto:<a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a>&gt;<br class="gmail_msg">
&gt;&gt;&gt;          <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; _______________________________________________<br class="gmail_msg">
&gt;&gt;&gt; infinispan-dev mailing list<br class="gmail_msg">
&gt;&gt;&gt; <a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a><br class="gmail_msg">
&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br class="gmail_msg">
&gt;&gt;<br class="gmail_msg">
&gt;&gt;<br class="gmail_msg">
&gt;&gt; --<br class="gmail_msg">
&gt;&gt; Radim Vansa &lt;<a href="mailto:rvansa@redhat.com" class="gmail_msg" target="_blank">rvansa@redhat.com</a>&gt;<br class="gmail_msg">
&gt;&gt; JBoss Performance Team<br class="gmail_msg">
&gt;&gt;<br class="gmail_msg">
&gt;&gt; _______________________________________________<br class="gmail_msg">
&gt;&gt; infinispan-dev mailing list<br class="gmail_msg">
&gt;&gt; <a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a><br class="gmail_msg">
&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br class="gmail_msg">
&gt; _______________________________________________<br class="gmail_msg">
&gt; infinispan-dev mailing list<br class="gmail_msg">
&gt; <a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a><br class="gmail_msg">
&gt; <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br class="gmail_msg">
&gt;<br class="gmail_msg">
<br class="gmail_msg">
--<br class="gmail_msg">
Tristan Tarrant<br class="gmail_msg">
Infinispan Lead<br class="gmail_msg">
JBoss, a division of Red Hat<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
infinispan-dev mailing list<br class="gmail_msg">
<a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a><br class="gmail_msg">
<a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br class="gmail_msg">
</blockquote></div>