org.jboss.as.clustering.infinispan.subsystem.TransactionRuntimeResourceDefinition Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of wildfly-clustering-infinispan-extension Show documentation
Show all versions of wildfly-clustering-infinispan-extension Show documentation
Installs an extension that provides the infinispan subsystem.
/*
* Copyright The WildFly Authors
* SPDX-License-Identifier: Apache-2.0
*/
package org.jboss.as.clustering.infinispan.subsystem;
import org.infinispan.Cache;
import org.infinispan.interceptors.impl.TxInterceptor;
import org.jboss.as.clustering.controller.MetricHandler;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.capability.BinaryCapabilityNameResolver;
import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.wildfly.subsystem.service.capture.FunctionExecutorRegistry;
/**
* @author Paul Ferraro
*/
public class TransactionRuntimeResourceDefinition extends CacheComponentRuntimeResourceDefinition {
static final PathElement PATH = pathElement("transaction");
private final FunctionExecutorRegistry> executors;
TransactionRuntimeResourceDefinition(FunctionExecutorRegistry> executors) {
super(PATH);
this.executors = executors;
}
@Override
public ManagementResourceRegistration register(ManagementResourceRegistration parent) {
ManagementResourceRegistration registration = super.register(parent);
new MetricHandler<>(new CacheInterceptorMetricExecutor<>(this.executors, TxInterceptor.class, BinaryCapabilityNameResolver.GRANDPARENT_PARENT), TransactionMetric.class).register(registration);
return registration;
}
}