[infinispan-issues] [JBoss JIRA] (ISPN-4971) CDI uses default EmbeddedCacheManager producer from infinispan-cdi.jar instead of custom one

Sebastian Łaskawiec (JIRA) issues at jboss.org
Mon Jan 19 04:26:49 EST 2015


     [ https://issues.jboss.org/browse/ISPN-4971?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sebastian Łaskawiec closed ISPN-4971.
-------------------------------------
    Resolution: Done


> CDI uses default EmbeddedCacheManager producer from infinispan-cdi.jar instead of custom one
> --------------------------------------------------------------------------------------------
>
>                 Key: ISPN-4971
>                 URL: https://issues.jboss.org/browse/ISPN-4971
>             Project: Infinispan
>          Issue Type: Bug
>          Components: CDI Integration
>    Affects Versions: 7.0.0.CR1, 7.0.0.CR2, 7.0.0.Final
>            Reporter: Vitalii Chepeliuk
>            Assignee: Sebastian Łaskawiec
>
> Custom producer has allowDuplicateDomains set to true look following code
> {code}
> public class EmbeddedCacheManagerProducer {
>    /**
>     * Produces the default embedded cache manager.
>     *
>     * @param providedDefaultEmbeddedCacheManager the provided default embedded cache manager.
>     * @param defaultConfiguration the default configuration produced by the {@link EmbeddedCacheManagerProducer}.
>     * @return the default embedded cache manager used by the application.
>     */
>    @Produces
>    @ApplicationScoped
>    public EmbeddedCacheManager getDefaultEmbeddedCacheManager(@OverrideDefault Instance<EmbeddedCacheManager> providedDefaultEmbeddedCacheManager, Configuration defaultConfiguration) {
>       GlobalConfiguration globalConfiguration = new GlobalConfigurationBuilder().globalJmxStatistics().allowDuplicateDomains(true).build();
>       ConfigurationBuilder builder = new ConfigurationBuilder();
>       builder.read(defaultConfiguration);
>       return new DefaultCacheManager(globalConfiguration, builder.build());
>    }
>    /**
>     * Stops the default embedded cache manager when the corresponding instance is released.
>     *
>     * @param defaultEmbeddedCacheManager the default embedded cache manager.
>     */
>    private void stopCacheManager(@Disposes EmbeddedCacheManager defaultEmbeddedCacheManager) {
>       defaultEmbeddedCacheManager.stop();
>    }
> }
> {code}
> And default ones from infinispan-cdi.jar is 
> {code}
> public class DefaultEmbeddedCacheManagerProducer {
>    private static final Log log = LogFactory.getLog(DefaultEmbeddedCacheManagerProducer.class, Log.class);
>    /**
>     * Produces the default embedded cache manager.
>     *
>     * @param providedDefaultEmbeddedCacheManager the provided default embedded cache manager.
>     * @param defaultConfiguration the default configuration produced by the {@link DefaultEmbeddedCacheConfigurationProducer}.
>     * @return the default embedded cache manager used by the application.
>     */
>    @Produces
>    @ApplicationScoped
>    @DefaultBean(EmbeddedCacheManager.class)
>    public EmbeddedCacheManager getDefaultEmbeddedCacheManager(@OverrideDefault Instance<EmbeddedCacheManager> providedDefaultEmbeddedCacheManager, Configuration defaultConfiguration) {
>       if (!providedDefaultEmbeddedCacheManager.isUnsatisfied()) {
>          log.tracef("Default embedded cache manager overridden by '%s'", providedDefaultEmbeddedCacheManager);
>          return providedDefaultEmbeddedCacheManager.get();
>       }
>       return new DefaultCacheManager(defaultConfiguration);
>    }
>    /**
>     * Stops the default embedded cache manager when the corresponding instance is released.
>     *
>     * @param defaultEmbeddedCacheManager the default embedded cache manager.
>     */
>    private void stopCacheManager(@Disposes EmbeddedCacheManager defaultEmbeddedCacheManager) {
>       defaultEmbeddedCacheManager.stop();
>    }
> }
> {code}
> When tests are deployed to APP server then following ERROR occurs
> 10:19:58,494 ERROR [org.infinispan.jmx.JmxUtil] (http-localhost.localdomain/127.0.0.1:8080-1) ISPN000034: There's already an cache manager instance registered under 'org.infinispan' JMX domain. If you want to allow multiple instances configured with same JMX domain enable 'allowDuplicateDomains' attribute in 'globalJmxStatistics' config element
> 10:19:58,526 ERROR [org.infinispan.jmx.JmxUtil] (http-localhost.localdomain/127.0.0.1:8080-1) ISPN000034: There's already an cache manager instance registered under 'org.infinispan' JMX domain. If you want to allow multiple instances configured with same JMX domain enable 'allowDuplicateDomains' attribute in 'globalJmxStatistics' config element
> 10:19:58,598 ERROR [org.infinispan.jmx.JmxUtil] (http-localhost.localdomain/127.0.0.1:8080-1) ISPN000034: There's already an cache manager instance registered under 'org.infinispan' JMX domain. If you want to allow multiple instances configured with same JMX domain enable 'allowDuplicateDomains' attribute in 'globalJmxStatistics' config element
> What means that out custom producer is sometimes not used and does not override default produced EmbeddedCacheManager



--
This message was sent by Atlassian JIRA
(v6.3.11#6341)



More information about the infinispan-issues mailing list