Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WFLY-5297 WildFly/IronJacamar 1.3.0.Final #8084

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -154,7 +154,7 @@ public void getResourceValue(final ResolutionContext context, final ServiceBuild
final ModifiableXaDataSource dataSource = new ModifiableXaDataSource(transactionIsolation(),
null, dsSecurity, null, null, null,
null, null, null, poolName, true,
jndiName, false, false, Defaults.CONNECTABLE, Defaults.TRACKING, properties,
jndiName, false, false, Defaults.CONNECTABLE, Defaults.TRACKING, Defaults.MCP, Defaults.ENLISTMENT_TRACE, properties,
className, null, null,
xaPool, null, null);
final XaDataSourceService xds = new XaDataSourceService(bindInfo.getBinderServiceName().getCanonicalName(), bindInfo, module.getClassLoader());
Expand All @@ -166,7 +166,8 @@ public void getResourceValue(final ResolutionContext context, final ServiceBuild
maxPoolSize < 1 ? Defaults.MAX_POOL_SIZE : Integer.valueOf(maxPoolSize),
Defaults.PREFILL, Defaults.USE_STRICT_MIN, Defaults.FLUSH_STRATEGY, Boolean.FALSE, null, null);
final ModifiableDataSource dataSource = new ModifiableDataSource(url, null, className, null, transactionIsolation(), properties,
null, dsSecurity, null, null, null, null, null, false, poolName, true, jndiName, Defaults.SPY, Defaults.USE_CCM, transactional, Defaults.CONNECTABLE, Defaults.TRACKING, commonPool, null);
null, dsSecurity, null, null, null, null, null, false, poolName, true, jndiName, Defaults.SPY, Defaults.USE_CCM,
transactional, Defaults.CONNECTABLE, Defaults.TRACKING, Defaults.MCP, Defaults.ENLISTMENT_TRACE, commonPool, null);
final LocalDataSourceService ds = new LocalDataSourceService(bindInfo.getBinderServiceName().getCanonicalName(), bindInfo, module.getClassLoader());
ds.getDataSourceConfigInjector().inject(dataSource);
startDataSource(ds, bindInfo, eeModuleDescription, context, phaseContext.getServiceTarget(), serviceBuilder, injector, securityEnabled);
Expand Down
Expand Up @@ -241,7 +241,7 @@ private ModifiableDataSource buildDataSource(DataSource ds) throws org.jboss.jca
ds.getSecurity(), ds.getStatement(), ds.getValidation(),
ds.getUrlDelimiter(), ds.getUrlSelectorStrategyClassName(), ds.getNewConnectionSql(),
ds.isUseJavaContext(), ds.getPoolName(), ds.isEnabled(), ds.getJndiName(),
ds.isSpy(), ds.isUseCcm(), ds.isJTA(), ds.isConnectable(), ds.isTracking(), ds.getPool(), null);
ds.isSpy(), ds.isUseCcm(), ds.isJTA(), ds.isConnectable(), ds.isTracking(), ds.getMcp(), ds.isEnlistmentTrace(), ds.getPool(), null);
}

private ModifiableXaDataSource buildXaDataSource(XaDataSource xads) throws org.jboss.jca.common.api.validator.ValidateException {
Expand All @@ -265,6 +265,7 @@ private ModifiableXaDataSource buildXaDataSource(XaDataSource xads) throws org.j
xads.getUrlDelimiter(), xads.getUrlProperty(), xads.getUrlSelectorStrategyClassName(),
xads.isUseJavaContext(), xads.getPoolName(), xads.isEnabled(), xads.getJndiName(),
xads.isSpy(), xads.isUseCcm(), xads.isConnectable(), xads.isTracking(),
xads.getMcp(), xads.isEnlistmentTrace(),
xads.getXaDataSourceProperty(), xads.getXaDataSourceClass(), xads.getDriver(),
xads.getNewConnectionSql(), xaPool, xads.getRecovery(), null);
}
Expand Down
Expand Up @@ -120,6 +120,10 @@ public class Constants {

private static final String CONNECTABLE_NAME = "connectable";

private static final String MCP_NAME = "mcp";

private static final String ENLISTMENT_TRACE_NAME = "enlistment-trace";

private static final String TRACKING_NAME = "tracking";

static final String POOLNAME_NAME = "pool-name";
Expand Down Expand Up @@ -333,6 +337,20 @@ public void validateResolvedParameter(String parameterName, ModelNode value) thr
.setAllowNull(true)
.build();

static SimpleAttributeDefinition ENLISTMENT_TRACE = new SimpleAttributeDefinitionBuilder(ENLISTMENT_TRACE_NAME, ModelType.BOOLEAN)
.setXmlName(DataSource.Attribute.ENLISTMENT_TRACE.getLocalName())
.setAllowExpression(true)
.setDefaultValue(new ModelNode(true))
.setAllowNull(true)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the default value?

.build();

static SimpleAttributeDefinition MCP = new SimpleAttributeDefinitionBuilder(MCP_NAME, ModelType.STRING)
.setAllowExpression(true)
.setAllowNull(true)
.setDefaultValue(new ModelNode(org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.class.getName()))
.setXmlName(DataSource.Attribute.MCP.getLocalName())
.build();

static SimpleAttributeDefinition TRACKING = new SimpleAttributeDefinitionBuilder(TRACKING_NAME, ModelType.BOOLEAN)
.setXmlName(DataSource.Attribute.TRACKING.getLocalName())
.setDefaultValue(new ModelNode(false))
Expand Down Expand Up @@ -600,7 +618,7 @@ public void validateResolvedParameter(String parameterName, ModelNode value) thr
org.jboss.as.connector.subsystems.common.pool.Constants.BACKGROUNDVALIDATION,
org.jboss.as.connector.subsystems.common.pool.Constants.USE_FAST_FAIL,
VALIDATE_ON_MATCH, SPY,
USE_CCM, ENABLED, CONNECTABLE, STATISTICS_ENABLED, TRACKING};
USE_CCM, ENABLED, CONNECTABLE, STATISTICS_ENABLED, TRACKING, MCP, ENLISTMENT_TRACE};

static final PropertiesAttributeDefinition[] DATASOURCE_PROPERTIES_ATTRIBUTES = new PropertiesAttributeDefinition[]{
REAUTHPLUGIN_PROPERTIES,
Expand Down Expand Up @@ -676,7 +694,7 @@ public void validateResolvedParameter(String parameterName, ModelNode value) thr
org.jboss.as.connector.subsystems.common.pool.Constants.BACKGROUNDVALIDATION,
org.jboss.as.connector.subsystems.common.pool.Constants.USE_FAST_FAIL,
VALIDATE_ON_MATCH, XA_RESOURCE_TIMEOUT,
SPY, USE_CCM, ENABLED, CONNECTABLE, STATISTICS_ENABLED, TRACKING,
SPY, USE_CCM, ENABLED, CONNECTABLE, STATISTICS_ENABLED, TRACKING, MCP, ENLISTMENT_TRACE,
RECOVERY_USERNAME, RECOVERY_PASSWORD,
RECOVERY_SECURITY_DOMAIN, RECOVER_PLUGIN_CLASSNAME,
NO_RECOVERY, URL_PROPERTY};
Expand Down
Expand Up @@ -32,10 +32,12 @@
import static org.jboss.as.connector.subsystems.datasources.Constants.DATA_SOURCE;
import static org.jboss.as.connector.subsystems.datasources.Constants.DUMP_QUEUED_THREADS;
import static org.jboss.as.connector.subsystems.datasources.Constants.ENABLED;
import static org.jboss.as.connector.subsystems.datasources.Constants.ENLISTMENT_TRACE;
import static org.jboss.as.connector.subsystems.datasources.Constants.FLUSH_ALL_CONNECTION;
import static org.jboss.as.connector.subsystems.datasources.Constants.FLUSH_GRACEFULLY_CONNECTION;
import static org.jboss.as.connector.subsystems.datasources.Constants.FLUSH_IDLE_CONNECTION;
import static org.jboss.as.connector.subsystems.datasources.Constants.FLUSH_INVALID_CONNECTION;
import static org.jboss.as.connector.subsystems.datasources.Constants.MCP;
import static org.jboss.as.connector.subsystems.datasources.Constants.STATISTICS_ENABLED;
import static org.jboss.as.connector.subsystems.datasources.Constants.TEST_CONNECTION;
import static org.jboss.as.connector.subsystems.datasources.Constants.TRACKING;
Expand Down Expand Up @@ -166,6 +168,15 @@ static void registerTransformers120(ResourceTransformationDescriptionBuilder par
builder.getAttributeBuilder()
.setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), CONNECTABLE)
.setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(false, false, new ModelNode(true)), STATISTICS_ENABLED)
.setDiscard(DiscardAttributeChecker.UNDEFINED, ENLISTMENT_TRACE)
.setDiscard(new DiscardAttributeChecker.DefaultDiscardAttributeChecker() {
@Override
protected boolean isValueDiscardable(PathAddress address, String attributeName, ModelNode attributeValue, TransformationContext context) {
return attributeValue.equals(new ModelNode("org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool"));
}
}, MCP)
.addRejectCheck(RejectAttributeChecker.DEFINED, ENLISTMENT_TRACE)
.addRejectCheck(RejectAttributeChecker.ALL, MCP)
.addRejectCheck(new RejectAttributeChecker.DefaultRejectAttributeChecker() {

@Override
Expand Down Expand Up @@ -200,6 +211,15 @@ static void registerTransformers200(ResourceTransformationDescriptionBuilder par
builder.getAttributeBuilder()
.setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(new ModelNode(false)), CONNECTABLE)
.setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(false, false, new ModelNode(true)), STATISTICS_ENABLED)
.setDiscard(DiscardAttributeChecker.UNDEFINED, ENLISTMENT_TRACE)
.setDiscard(new DiscardAttributeChecker.DefaultDiscardAttributeChecker() {
@Override
protected boolean isValueDiscardable(PathAddress address, String attributeName, ModelNode attributeValue, TransformationContext context) {
return attributeValue.equals(new ModelNode("org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool"));
}
}, MCP)
.addRejectCheck(RejectAttributeChecker.DEFINED, ENLISTMENT_TRACE)
.addRejectCheck(RejectAttributeChecker.ALL, MCP)
.addRejectCheck(new RejectAttributeChecker.DefaultRejectAttributeChecker() {

@Override
Expand Down Expand Up @@ -229,4 +249,19 @@ protected boolean isValueDiscardable(PathAddress address, String attributeName,
.end();
}

static void registerTransformers300(ResourceTransformationDescriptionBuilder parentBuilder) {
ResourceTransformationDescriptionBuilder builder = parentBuilder.addChildResource(PATH_DATASOURCE);
builder.getAttributeBuilder()
.setDiscard(DiscardAttributeChecker.UNDEFINED, ENLISTMENT_TRACE)
.setDiscard(new DiscardAttributeChecker.DefaultDiscardAttributeChecker() {
@Override
protected boolean isValueDiscardable(PathAddress address, String attributeName, ModelNode attributeValue, TransformationContext context) {
return attributeValue.equals(new ModelNode("org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool"));
}
}, MCP)
.addRejectCheck(RejectAttributeChecker.DEFINED, ENLISTMENT_TRACE)
.addRejectCheck(RejectAttributeChecker.ALL, MCP)
.end();
}

}
Expand Up @@ -49,11 +49,13 @@
import static org.jboss.as.connector.subsystems.datasources.Constants.DATASOURCE_DRIVER;
import static org.jboss.as.connector.subsystems.datasources.Constants.DRIVER_CLASS;
import static org.jboss.as.connector.subsystems.datasources.Constants.ENABLED;
import static org.jboss.as.connector.subsystems.datasources.Constants.ENLISTMENT_TRACE;
import static org.jboss.as.connector.subsystems.datasources.Constants.EXCEPTION_SORTER_CLASSNAME;
import static org.jboss.as.connector.subsystems.datasources.Constants.EXCEPTION_SORTER_PROPERTIES;
import static org.jboss.as.connector.subsystems.datasources.Constants.INTERLEAVING;
import static org.jboss.as.connector.subsystems.datasources.Constants.JNDI_NAME;
import static org.jboss.as.connector.subsystems.datasources.Constants.JTA;
import static org.jboss.as.connector.subsystems.datasources.Constants.MCP;
import static org.jboss.as.connector.subsystems.datasources.Constants.NEW_CONNECTION_SQL;
import static org.jboss.as.connector.subsystems.datasources.Constants.NO_RECOVERY;
import static org.jboss.as.connector.subsystems.datasources.Constants.NO_TX_SEPARATE_POOL;
Expand Down Expand Up @@ -151,6 +153,8 @@ static ModifiableDataSource from(final OperationContext operationContext, final
final boolean enabled = ModelNodeUtil.getBooleanIfSetOrGetDefault(operationContext, dataSourceNode, ENABLED);
final boolean connectable = ModelNodeUtil.getBooleanIfSetOrGetDefault(operationContext, dataSourceNode, CONNECTABLE);
final Boolean tracking = ModelNodeUtil.getBooleanIfSetOrGetDefault(operationContext, dataSourceNode, TRACKING);
final Boolean enlistmentTrace = ModelNodeUtil.getBooleanIfSetOrGetDefault(operationContext, dataSourceNode, ENLISTMENT_TRACE);
final String mcp = ModelNodeUtil.getResolvedStringIfSetOrGetDefault(operationContext, dataSourceNode, MCP);
final boolean jta = ModelNodeUtil.getBooleanIfSetOrGetDefault(operationContext, dataSourceNode, JTA);
final Integer maxPoolSize = ModelNodeUtil.getIntIfSetOrGetDefault(operationContext, dataSourceNode, MAX_POOL_SIZE);
final Integer minPoolSize = ModelNodeUtil.getIntIfSetOrGetDefault(operationContext, dataSourceNode, MIN_POOL_SIZE);
Expand Down Expand Up @@ -221,7 +225,7 @@ static ModifiableDataSource from(final OperationContext operationContext, final

return new ModifiableDataSource(connectionUrl, driverClass, dataSourceClass, driver, transactionIsolation, connectionProperties, timeOut,
security, statement, validation, urlDelimiter, urlSelectorStrategyClassName, newConnectionSql, useJavaContext,
poolName, enabled, jndiName, spy, useCcm, jta, connectable, tracking, pool, profile);
poolName, enabled, jndiName, spy, useCcm, jta, connectable, tracking, mcp, enlistmentTrace, pool, profile);
}

static ModifiableXaDataSource xaFrom(final OperationContext operationContext, final ModelNode dataSourceNode, final String dsName) throws OperationFailedException, ValidateException {
Expand All @@ -243,6 +247,8 @@ static ModifiableXaDataSource xaFrom(final OperationContext operationContext, fi
final Boolean enabled = ModelNodeUtil.getBooleanIfSetOrGetDefault(operationContext, dataSourceNode, ENABLED);
final boolean connectable = ModelNodeUtil.getBooleanIfSetOrGetDefault(operationContext, dataSourceNode, CONNECTABLE);
final Boolean tracking = ModelNodeUtil.getBooleanIfSetOrGetDefault(operationContext, dataSourceNode, TRACKING);
final Boolean enlistmentTrace = ModelNodeUtil.getBooleanIfSetOrGetDefault(operationContext, dataSourceNode, ENLISTMENT_TRACE);
final String mcp = ModelNodeUtil.getResolvedStringIfSetOrGetDefault(operationContext, dataSourceNode, MCP);
final Integer maxPoolSize = ModelNodeUtil.getIntIfSetOrGetDefault(operationContext, dataSourceNode, MAX_POOL_SIZE);
final Integer minPoolSize = ModelNodeUtil.getIntIfSetOrGetDefault(operationContext, dataSourceNode, MIN_POOL_SIZE);
final Integer initialPoolSize = ModelNodeUtil.getIntIfSetOrGetDefault(operationContext, dataSourceNode, INITIAL_POOL_SIZE);
Expand Down Expand Up @@ -336,7 +342,7 @@ static ModifiableXaDataSource xaFrom(final OperationContext operationContext, fi
}
return new ModifiableXaDataSource(transactionIsolation, timeOut, security, statement, validation, urlDelimiter, urlProperty,
urlSelectorStrategyClassName, useJavaContext, poolName, enabled, jndiName, spy, useCcm,
connectable, tracking, xaDataSourceProperty,
connectable, tracking, mcp, enlistmentTrace, xaDataSourceProperty,
xaDataSourceClass, module, newConnectionSql, xaPool, recovery, profile);
}

Expand Down
Expand Up @@ -59,12 +59,14 @@
import static org.jboss.as.connector.subsystems.datasources.Constants.DRIVER_NAME;
import static org.jboss.as.connector.subsystems.datasources.Constants.DRIVER_XA_DATASOURCE_CLASS_NAME;
import static org.jboss.as.connector.subsystems.datasources.Constants.ENABLED;
import static org.jboss.as.connector.subsystems.datasources.Constants.ENLISTMENT_TRACE;
import static org.jboss.as.connector.subsystems.datasources.Constants.EXCEPTION_SORTER_CLASSNAME;
import static org.jboss.as.connector.subsystems.datasources.Constants.EXCEPTION_SORTER_PROPERTIES;
import static org.jboss.as.connector.subsystems.datasources.Constants.INTERLEAVING;
import static org.jboss.as.connector.subsystems.datasources.Constants.JDBC_DRIVER_NAME;
import static org.jboss.as.connector.subsystems.datasources.Constants.JNDI_NAME;
import static org.jboss.as.connector.subsystems.datasources.Constants.JTA;
import static org.jboss.as.connector.subsystems.datasources.Constants.MCP;
import static org.jboss.as.connector.subsystems.datasources.Constants.MODULE_SLOT;
import static org.jboss.as.connector.subsystems.datasources.Constants.NEW_CONNECTION_SQL;
import static org.jboss.as.connector.subsystems.datasources.Constants.NO_RECOVERY;
Expand Down Expand Up @@ -152,7 +154,7 @@ public class DataSourcesExtension implements Extension {
public static final String SUBSYSTEM_NAME = Constants.DATASOURCES;
private static final String RESOURCE_NAME = DataSourcesExtension.class.getPackage().getName() + ".LocalDescriptions";

private static final ModelVersion CURRENT_MODEL_VERSION = ModelVersion.create(3, 0, 0);
private static final ModelVersion CURRENT_MODEL_VERSION = ModelVersion.create(4, 0, 0);

static StandardResourceDescriptionResolver getResourceDescriptionResolver(final String... keyPrefix) {
StringBuilder prefix = new StringBuilder(SUBSYSTEM_NAME);
Expand Down Expand Up @@ -191,6 +193,7 @@ public void initializeParsers(final ExtensionParsingContext context) {
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.DATASOURCES_1_2.getUriString(), DataSourceSubsystemParser.INSTANCE);
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.DATASOURCES_2_0.getUriString(), DataSourceSubsystemParser.INSTANCE);
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.DATASOURCES_3_0.getUriString(), DataSourceSubsystemParser.INSTANCE);
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, Namespace.DATASOURCES_4_0.getUriString(), DataSourceSubsystemParser.INSTANCE);
}

public static final class DataSourceSubsystemParser implements XMLStreamConstants, XMLElementReader<List<ModelNode>>,
Expand Down Expand Up @@ -263,6 +266,8 @@ private void writeDS(XMLExtendedStreamWriter writer, boolean isXADataSource, Mod
USE_CCM.marshallAsAttribute(dataSourceNode, writer);
CONNECTABLE.marshallAsAttribute(dataSourceNode, writer);
TRACKING.marshallAsAttribute(dataSourceNode, writer);
MCP.marshallAsAttribute(dataSourceNode, writer);
ENLISTMENT_TRACE.marshallAsAttribute(dataSourceNode, writer);
STATISTICS_ENABLED.marshallAsAttribute(dataSourceNode, writer);

if (!isXADataSource) {
Expand Down
Expand Up @@ -98,6 +98,7 @@ public void registerChildren(ManagementResourceRegistration resourceRegistration
static void registerTransformers(SubsystemRegistration subsystem) {
TransformationDescription.Tools.register(get120TransformationDescription(), subsystem, ModelVersion.create(1, 2, 0)); //EAP 6.2.0
TransformationDescription.Tools.register(get200TransformationDescription(), subsystem, ModelVersion.create(2, 0, 0));
TransformationDescription.Tools.register(get300TransformationDescription(), subsystem, ModelVersion.create(3, 0, 0));
}


Expand All @@ -121,4 +122,14 @@ static TransformationDescription get200TransformationDescription() {
return builder.build();
}

static TransformationDescription get300TransformationDescription() {

ResourceTransformationDescriptionBuilder builder = TransformationDescriptionBuilder.Factory.createSubsystemInstance();
//No change
//JdbcDriverDefinition.registerTransformers110(builder);
DataSourceDefinition.registerTransformers300(builder);
XaDataSourceDefinition.registerTransformers300(builder);
return builder.build();
}

}