Skip to content

Commit

Permalink
WFLY-10492 Upgrade Infinispan to 9.3.1.Final
Browse files Browse the repository at this point in the history
  • Loading branch information
pferraro committed Jul 18, 2018
1 parent e1baca5 commit 02956f5
Show file tree
Hide file tree
Showing 37 changed files with 1,730 additions and 136 deletions.
Expand Up @@ -22,16 +22,18 @@

package org.wildfly.clustering.ejb.infinispan;

import org.infinispan.filter.KeyFilter;
import org.infinispan.metadata.Metadata;
import org.infinispan.notifications.cachelistener.filter.CacheEventFilter;
import org.infinispan.notifications.cachelistener.filter.EventType;

/**
* Filters a cache for entries specific to a particular bean.
* @author Paul Ferraro
*/
public class BeanGroupFilter implements KeyFilter<Object> {
public class BeanGroupFilter implements CacheEventFilter<Object, Object> {

@Override
public boolean accept(Object key) {
public boolean accept(Object key, Object oldValue, Metadata oldMetadata, Object newValue, Metadata newMetadata, EventType eventType) {
return key instanceof BeanGroupKey;
}
}
Expand Up @@ -113,7 +113,7 @@ public Collection<CapabilityServiceConfigurator> getDeploymentServiceConfigurato
if (strategy.isEnabled()) {
// Only evict bean group entries
// We will cascade eviction to the associated beans
builder.dataContainer().dataContainer(new EvictableDataContainer<>(size, BeanGroupKey.class::isInstance));
builder.dataContainer().dataContainer(EvictableDataContainer.createDataContainer(builder, size, BeanGroupKey.class::isInstance));
}
};

Expand Down
Expand Up @@ -79,7 +79,7 @@ public InfinispanBeanGroupFactory(Cache<BeanGroupKey<I>, BeanGroupEntry<I, T>> c
this.factory = factory;
this.context = context;
this.passivationListener = !properties.isPersistent() ? passivation.getPassivationListener() : null;
this.cache.addListener(this, new BeanGroupFilter());
this.cache.addListener(this, new BeanGroupFilter(), null);
}

@Override
Expand Down
4 changes: 4 additions & 0 deletions clustering/infinispan/extension/pom.xml
Expand Up @@ -90,6 +90,10 @@
<groupId>net.jcip</groupId>
<artifactId>jcip-annotations</artifactId>
</dependency>
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
</dependency>
<dependency>
<groupId>org.kohsuke.metainf-services</groupId>
<artifactId>metainf-services</artifactId>
Expand Down
Expand Up @@ -24,7 +24,7 @@

import javax.transaction.TransactionManager;

import org.infinispan.transaction.lookup.TransactionManagerLookup;
import org.infinispan.commons.tx.lookup.TransactionManagerLookup;

/**
* @author Paul Ferraro
Expand Down
Expand Up @@ -231,17 +231,13 @@ static void buildTransformation(ModelVersion version, ResourceTransformationDesc
ResourceTransformationDescriptionBuilder builder = parent.addChildResource(WILDCARD_PATH);

if (InfinispanModel.VERSION_4_0_0.requiresTransformation(version)) {
builder.discardChildResource(NoTransportResourceDefinition.PATH);

for (ThreadPoolResourceDefinition pool : EnumSet.complementOf(EnumSet.of(ThreadPoolResourceDefinition.CLIENT))) {
builder.addChildResource(pool.getPathElement(), pool.getDiscardPolicy());
}
for (ScheduledThreadPoolResourceDefinition pool : EnumSet.allOf(ScheduledThreadPoolResourceDefinition.class)) {
builder.addChildResource(pool.getPathElement(), pool.getDiscardPolicy());
}
} else {
NoTransportResourceDefinition.buildTransformation(version, builder);

for (ThreadPoolResourceDefinition pool : EnumSet.complementOf(EnumSet.of(ThreadPoolResourceDefinition.CLIENT))) {
pool.buildTransformation(version, parent);
}
Expand Down Expand Up @@ -284,6 +280,7 @@ public ModelNode transformOperation(ModelNode operation) {
builder.addRawOperationTransformationOverride(ListOperations.LIST_REMOVE_DEFINITION.getName(), new SimpleOperationTransformer(removeAliasTransformer));
}

NoTransportResourceDefinition.buildTransformation(version, builder);
JGroupsTransportResourceDefinition.buildTransformation(version, builder);

ScatteredCacheResourceDefinition.buildTransformation(version, builder);
Expand Down
Expand Up @@ -42,8 +42,9 @@ public enum InfinispanSchema implements Schema<InfinispanSchema> {
VERSION_4_0(4, 0), // WildFly 10/11
VERSION_5_0(5, 0), // WildFly 12
VERSION_6_0(6, 0), // WildFly 13
VERSION_7_0(7, 0), // WildFly 14
;
static final InfinispanSchema CURRENT = VERSION_6_0;
static final InfinispanSchema CURRENT = VERSION_7_0;

private final int major;
private final int minor;
Expand Down
Expand Up @@ -47,6 +47,7 @@
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.AttributeParser;
import org.jboss.as.controller.PathAddress;
import org.jboss.as.controller.ResourceDefinition;
import org.jboss.as.controller.operations.common.Util;
import org.jboss.as.controller.parsing.Element;
import org.jboss.as.controller.parsing.ParseUtils;
Expand Down Expand Up @@ -237,7 +238,11 @@ private void parseContainer(XMLExtendedStreamReader reader, PathAddress subsyste
}
case PERSISTENCE_THREAD_POOL: {
if (this.schema.since(InfinispanSchema.VERSION_4_0)) {
this.parseThreadPool(ThreadPoolResourceDefinition.PERSISTENCE, reader, address, operations);
if (this.schema.since(InfinispanSchema.VERSION_7_0)) {
this.parseScheduledThreadPool(ThreadPoolResourceDefinition.PERSISTENCE, reader, address, operations);
} else {
this.parseThreadPool(ThreadPoolResourceDefinition.PERSISTENCE, reader, address, operations);
}
break;
}
}
Expand Down Expand Up @@ -1301,7 +1306,7 @@ private void parseRemoteStore(XMLExtendedStreamReader reader, PathAddress cacheA

private void parseHotRodStore(XMLExtendedStreamReader reader, PathAddress cacheAddress, Map<PathAddress, ModelNode> operations) throws XMLStreamException {
PathAddress address = cacheAddress.append(HotRodStoreResourceDefinition.PATH);
PathAddress operationKey = cacheAddress.append(HotRodStoreResourceDefinition.WILDCARD_PATH);
PathAddress operationKey = cacheAddress.append(StoreResourceDefinition.WILDCARD_PATH);
if (operations.containsKey(operationKey)) {
throw ParseUtils.unexpectedElement(reader);
}
Expand Down Expand Up @@ -1740,7 +1745,7 @@ private void parseStoreWriteBehind(XMLExtendedStreamReader reader, PathAddress s
ParseUtils.requireNoContent(reader);
}

private void parseThreadPool(ThreadPoolResourceDefinition pool, XMLExtendedStreamReader reader, PathAddress parentAddress, Map<PathAddress, ModelNode> operations) throws XMLStreamException {
private <P extends ThreadPoolDefinition & ResourceDefinition> void parseThreadPool(P pool, XMLExtendedStreamReader reader, PathAddress parentAddress, Map<PathAddress, ModelNode> operations) throws XMLStreamException {
PathAddress address = parentAddress.append(pool.getPathElement());
ModelNode operation = Util.createAddOperation(address);
operations.put(address, operation);
Expand All @@ -1749,15 +1754,19 @@ private void parseThreadPool(ThreadPoolResourceDefinition pool, XMLExtendedStrea
XMLAttribute attribute = XMLAttribute.forName(reader.getAttributeLocalName(i));
switch (attribute) {
case MIN_THREADS: {
readAttribute(reader, i, operation, pool.getMinThreads());
if (pool.getMinThreads() != null) {
readAttribute(reader, i, operation, pool.getMinThreads());
}
break;
}
case MAX_THREADS: {
readAttribute(reader, i, operation, pool.getMaxThreads());
break;
}
case QUEUE_LENGTH: {
readAttribute(reader, i, operation, pool.getQueueLength());
if (pool.getQueueLength() != null) {
readAttribute(reader, i, operation, pool.getQueueLength());
}
break;
}
case KEEPALIVE_TIME: {
Expand All @@ -1773,7 +1782,7 @@ private void parseThreadPool(ThreadPoolResourceDefinition pool, XMLExtendedStrea
ParseUtils.requireNoContent(reader);
}

private void parseScheduledThreadPool(ScheduledThreadPoolResourceDefinition pool, XMLExtendedStreamReader reader, PathAddress parentAddress, Map<PathAddress, ModelNode> operations) throws XMLStreamException {
private <P extends ScheduledThreadPoolDefinition & ResourceDefinition> void parseScheduledThreadPool(P pool, XMLExtendedStreamReader reader, PathAddress parentAddress, Map<PathAddress, ModelNode> operations) throws XMLStreamException {
PathAddress address = parentAddress.append(pool.getPathElement());
ModelNode operation = Util.createAddOperation(address);
operations.put(address, operation);
Expand Down
Expand Up @@ -22,6 +22,7 @@

package org.jboss.as.clustering.infinispan.subsystem;

import java.util.Arrays;
import java.util.EnumSet;
import java.util.Set;

Expand All @@ -35,6 +36,7 @@
import org.jboss.as.clustering.infinispan.subsystem.remote.RemoteClusterResourceDefinition;
import org.jboss.as.clustering.infinispan.subsystem.remote.SecurityResourceDefinition;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.ResourceDefinition;
import org.jboss.as.controller.persistence.SubsystemMarshallingContext;
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.Property;
Expand Down Expand Up @@ -79,11 +81,11 @@ public void writeContent(XMLExtendedStreamWriter writer, SubsystemMarshallingCon
if (container.hasDefined(ThreadPoolResourceDefinition.WILDCARD_PATH.getKey())) {
writeThreadPoolElements(XMLElement.ASYNC_OPERATIONS_THREAD_POOL, ThreadPoolResourceDefinition.ASYNC_OPERATIONS, writer, container);
writeThreadPoolElements(XMLElement.LISTENER_THREAD_POOL, ThreadPoolResourceDefinition.LISTENER, writer, container);
writeThreadPoolElements(XMLElement.PERSISTENCE_THREAD_POOL, ThreadPoolResourceDefinition.PERSISTENCE, writer, container);
writeThreadPoolElements(XMLElement.REMOTE_COMMAND_THREAD_POOL, ThreadPoolResourceDefinition.REMOTE_COMMAND, writer, container);
writeThreadPoolElements(XMLElement.STATE_TRANSFER_THREAD_POOL, ThreadPoolResourceDefinition.STATE_TRANSFER, writer, container);
writeThreadPoolElements(XMLElement.TRANSPORT_THREAD_POOL, ThreadPoolResourceDefinition.TRANSPORT, writer, container);
writeScheduledThreadPoolElements(XMLElement.EXPIRATION_THREAD_POOL, ScheduledThreadPoolResourceDefinition.EXPIRATION, writer, container);
writeScheduledThreadPoolElements(XMLElement.PERSISTENCE_THREAD_POOL, ThreadPoolResourceDefinition.PERSISTENCE, writer, container);
}

// write any existent cache types
Expand Down Expand Up @@ -457,23 +459,25 @@ private static void writeElement(XMLExtendedStreamWriter writer, ModelNode model
attribute.getDefinition().getMarshaller().marshallAsElement(attribute.getDefinition(), model, true, writer);
}

private static void writeThreadPoolElements(XMLElement element, ThreadPoolResourceDefinition pool, XMLExtendedStreamWriter writer, ModelNode container) throws XMLStreamException {
private static <P extends ThreadPoolDefinition & ResourceDefinition> void writeThreadPoolElements(XMLElement element, P pool, XMLExtendedStreamWriter writer, ModelNode container) throws XMLStreamException {
if (container.get(pool.getPathElement().getKey()).hasDefined(pool.getPathElement().getValue())) {
ModelNode threadPool = container.get(pool.getPathElement().getKeyValuePair());
if (hasDefined(threadPool, pool.getAttributes())) {
Iterable<Attribute> attributes = Arrays.asList(pool.getMinThreads(), pool.getMaxThreads(), pool.getQueueLength(), pool.getKeepAliveTime());
if (hasDefined(threadPool, attributes)) {
writer.writeStartElement(element.getLocalName());
writeAttributes(writer, threadPool, pool.getAttributes());
writeAttributes(writer, threadPool, attributes);
writer.writeEndElement();
}
}
}

private static void writeScheduledThreadPoolElements(XMLElement element, ScheduledThreadPoolResourceDefinition pool, XMLExtendedStreamWriter writer, ModelNode container) throws XMLStreamException {
private static <P extends ScheduledThreadPoolDefinition & ResourceDefinition> void writeScheduledThreadPoolElements(XMLElement element, P pool, XMLExtendedStreamWriter writer, ModelNode container) throws XMLStreamException {
if (container.get(pool.getPathElement().getKey()).hasDefined(pool.getPathElement().getValue())) {
ModelNode threadPool = container.get(pool.getPathElement().getKeyValuePair());
if (hasDefined(threadPool, pool.getAttributes())) {
Iterable<Attribute> attributes = Arrays.asList(pool.getMaxThreads(), pool.getKeepAliveTime());
if (hasDefined(threadPool, attributes)) {
writer.writeStartElement(element.getLocalName());
writeAttributes(writer, threadPool, pool.getAttributes());
writeAttributes(writer, threadPool, attributes);
writer.writeEndElement();
}
}
Expand Down
Expand Up @@ -35,7 +35,9 @@ public class NoTransportResourceDefinition extends TransportResourceDefinition {
static final PathElement PATH = pathElement("none");

static void buildTransformation(ModelVersion version, ResourceTransformationDescriptionBuilder parent) {
// Nothing to transform
if (InfinispanModel.VERSION_4_0_0.requiresTransformation(version)) {
parent.discardChildResource(NoTransportResourceDefinition.PATH);
}
}

NoTransportResourceDefinition() {
Expand Down
Expand Up @@ -23,18 +23,13 @@
package org.jboss.as.clustering.infinispan.subsystem;

import org.jboss.as.clustering.controller.Attribute;
import org.jboss.as.clustering.controller.ResourceServiceNameFactory;

/**
* @author Paul Ferraro
*/
public interface ThreadPoolDefinition extends ResourceServiceNameFactory {
public interface ThreadPoolDefinition extends ScheduledThreadPoolDefinition {

Attribute getMinThreads();

Attribute getMaxThreads();

Attribute getQueueLength();

Attribute getKeepAliveTime();
}

0 comments on commit 02956f5

Please sign in to comment.