Skip to content

Commit

Permalink
WFLY-5738 Jacorb subsystem - transformers for eap 6.2, 6.3 & 6.4
Browse files Browse the repository at this point in the history
- also make extension extend LegacyExtension so it can only work on host controller / admin-mode
  • Loading branch information
ctomc committed Dec 7, 2015
1 parent c654359 commit 46d666d
Show file tree
Hide file tree
Showing 7 changed files with 180 additions and 217 deletions.
Expand Up @@ -22,19 +22,23 @@

package org.jboss.as.jacorb;

import java.util.Collections;
import java.util.Set;

import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.Extension;
import org.jboss.as.controller.ExtensionContext;
import org.jboss.as.controller.ModelVersion;
import org.jboss.as.controller.SubsystemRegistration;
import org.jboss.as.controller.descriptions.DeprecatedResourceDescriptionResolver;
import org.jboss.as.controller.descriptions.ResourceDescriptionResolver;
import org.jboss.as.controller.operations.common.GenericSubsystemDescribeHandler;
import org.jboss.as.controller.extension.AbstractLegacyExtension;
import org.jboss.as.controller.parsing.ExtensionParsingContext;
import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.jboss.as.controller.transform.description.AttributeConverter;
import org.jboss.as.controller.transform.description.ChainedTransformationDescriptionBuilder;
import org.jboss.as.controller.transform.description.DiscardAttributeChecker;
import org.jboss.as.controller.transform.description.RejectAttributeChecker;
import org.jboss.as.controller.transform.description.ResourceTransformationDescriptionBuilder;
import org.jboss.as.controller.transform.description.TransformationDescription;

/**
* <p>
Expand All @@ -44,7 +48,7 @@
* @author <a href="mailto:sguilhen@redhat.com">Stefan Guilhen</a>
* @author <a href="mailto:tadamski@redhat.com">Tomasz Adamski</a>
*/
public class JacORBExtension implements Extension {
public class JacORBExtension extends AbstractLegacyExtension {

private static final JacORBSubsystemParser PARSER = JacORBSubsystemParser.INSTANCE;

Expand All @@ -56,6 +60,10 @@ public class JacORBExtension implements Extension {

static final ModelVersion DEPRECATED_SINCE = ModelVersion.create(2, 0, 0);

public JacORBExtension() {
super("org.jboss.as.jacorb", SUBSYSTEM_NAME);
}

static ResourceDescriptionResolver getResourceDescriptionResolver(final String... keyPrefix) {
StringBuilder prefix = new StringBuilder(SUBSYSTEM_NAME);
for (String kp : keyPrefix) {
Expand All @@ -65,21 +73,21 @@ static ResourceDescriptionResolver getResourceDescriptionResolver(final String..
}

@Override
public void initialize(ExtensionContext context) {
protected Set<ManagementResourceRegistration> initializeLegacyModel(ExtensionContext context) {
final SubsystemRegistration subsystem = context.registerSubsystem(SUBSYSTEM_NAME, CURRENT_MODEL_VERSION);
final ManagementResourceRegistration subsystemRegistration = subsystem.registerSubsystemModel(JacORBSubsystemResource.INSTANCE);
subsystemRegistration.registerOperationHandler(GenericSubsystemDescribeHandler.DEFINITION, GenericSubsystemDescribeHandler.INSTANCE);
subsystem.registerXMLElementWriter(PARSER);

if (context.isRegisterTransformers()) {
// Register the model transformers
registerTransformers_1_3(subsystem);
registerTransformers_1_4(subsystem);
registerTransformers(subsystem);
}

return Collections.singleton(subsystemRegistration);
}

@Override
public void initializeParsers(ExtensionParsingContext context) {
protected void initializeLegacyParsers(ExtensionParsingContext context) {
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, JacORBSubsystemParser.Namespace.JacORB_1_0.getUriString(), PARSER);
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, JacORBSubsystemParser.Namespace.JacORB_1_1.getUriString(), PARSER);
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, JacORBSubsystemParser.Namespace.JacORB_1_2.getUriString(), PARSER);
Expand All @@ -93,30 +101,31 @@ public void initializeParsers(ExtensionParsingContext context) {
*
* @param subsystem the subsystems registration
*/
protected static void registerTransformers_1_3(final SubsystemRegistration subsystem) {
ResourceTransformationDescriptionBuilder builder = ResourceTransformationDescriptionBuilder.Factory
.createSubsystemInstance();
builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED,
IORTransportConfigDefinition.ATTRIBUTES.toArray(new AttributeDefinition[0]));
builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED,
IORASContextDefinition.ATTRIBUTES.toArray(new AttributeDefinition[0]));
builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED,
IORSASContextDefinition.ATTRIBUTES.toArray(new AttributeDefinition[0]));
builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED,
JacORBSubsystemDefinitions.PERSISTENT_SERVER_ID);
TransformationDescription.Tools.register(builder.build(), subsystem, ModelVersion.create(1, 3, 0));
}
protected static void registerTransformers(final SubsystemRegistration subsystem) {
ChainedTransformationDescriptionBuilder chained = ResourceTransformationDescriptionBuilder.Factory.createChainedSubystemInstance(CURRENT_MODEL_VERSION);
ModelVersion MODEL_VERSION_EAP64 = ModelVersion.create(1, 4, 0);
ModelVersion MODEL_VERSION_EAP63 = ModelVersion.create(1, 3, 0);//also EAP6.2

/**
* Register the transformers for the 1.4.0 version.
*
* @param subsystem the subsystems registration
*/
protected static void registerTransformers_1_4(final SubsystemRegistration subsystem) {
ResourceTransformationDescriptionBuilder builder = ResourceTransformationDescriptionBuilder.Factory
.createSubsystemInstance();
builder.getAttributeBuilder().addRejectCheck(RejectAttributeChecker.DEFINED,
JacORBSubsystemDefinitions.PERSISTENT_SERVER_ID);
TransformationDescription.Tools.register(builder.build(), subsystem, ModelVersion.create(1, 4, 0));
ResourceTransformationDescriptionBuilder builder64 = chained.createBuilder(CURRENT_MODEL_VERSION, MODEL_VERSION_EAP64);
builder64.getAttributeBuilder()
.addRejectCheck(RejectAttributeChecker.DEFINED, JacORBSubsystemDefinitions.PERSISTENT_SERVER_ID)
.setDiscard(new DiscardAttributeChecker.DiscardAttributeValueChecker(JacORBSubsystemDefinitions.PERSISTENT_SERVER_ID.getDefaultValue()), JacORBSubsystemDefinitions.PERSISTENT_SERVER_ID)
.setValueConverter(new AttributeConverter.DefaultValueAttributeConverter(JacORBSubsystemDefinitions.INTEROP_CHUNK_RMI_VALUETYPES),JacORBSubsystemDefinitions.INTEROP_CHUNK_RMI_VALUETYPES);


ResourceTransformationDescriptionBuilder builder63 = chained.createBuilder(MODEL_VERSION_EAP64, MODEL_VERSION_EAP63);
builder63.getAttributeBuilder()
.addRejectCheck(RejectAttributeChecker.DEFINED, IORTransportConfigDefinition.ATTRIBUTES.toArray(new AttributeDefinition[0]))
.addRejectCheck(RejectAttributeChecker.DEFINED, IORASContextDefinition.ATTRIBUTES.toArray(new AttributeDefinition[0]))
.addRejectCheck(RejectAttributeChecker.DEFINED, IORSASContextDefinition.ATTRIBUTES.toArray(new AttributeDefinition[0]))
.end()
.rejectChildResource(IORSettingsDefinition.INSTANCE.getPathElement());


chained.buildAndRegister(subsystem, new ModelVersion[]{
MODEL_VERSION_EAP64,
MODEL_VERSION_EAP63
});
}

}
Expand Up @@ -52,9 +52,9 @@
*/
class JacORBSubsystemDefinitions {

static final ModelNode DEFAULT_DISABLED_PROPERTY = new ModelNode().set("off");
static final ModelNode DEFAULT_DISABLED_PROPERTY = new ModelNode("off");

static final ModelNode DEFAULT_ENABLED_PROPERTY = new ModelNode().set("on");
static final ModelNode DEFAULT_ENABLED_PROPERTY = new ModelNode("on");

private static final ParameterValidator SSL_CONFIG_VALIDATOR =
new EnumValidator<SSLConfigValue>(SSLConfigValue.class, true, false);
Expand Down
Expand Up @@ -32,10 +32,12 @@
import org.jboss.as.controller.OperationStepHandler;
import org.jboss.as.controller.PathAddress;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.ProcessType;
import org.jboss.as.controller.ReloadRequiredRemoveStepHandler;
import org.jboss.as.controller.RunningMode;
import org.jboss.as.controller.SimpleOperationDefinitionBuilder;
import org.jboss.as.controller.SimpleResourceDefinition;
import org.jboss.as.controller.capability.registry.RuntimeCapabilityRegistry;
import org.jboss.as.controller.descriptions.StandardResourceDescriptionResolver;
import org.jboss.as.controller.descriptions.common.ControllerResolver;
import org.jboss.as.controller.extension.ExtensionRegistry;
Expand Down Expand Up @@ -94,9 +96,7 @@ private static class NewSubsystemAdditionalInitialization extends AdditionalInit
IIOPExtension newSubsystem = new IIOPExtension();
boolean extensionAdded = false;
@Override
public void initializeExtraSubystemsAndModel(final ExtensionRegistry extensionRegistry, Resource rootResource,
final ManagementResourceRegistration rootRegistration) {

protected void initializeExtraSubystemsAndModel(ExtensionRegistry extensionRegistry, Resource rootResource, ManagementResourceRegistration rootRegistration, RuntimeCapabilityRegistry capabilityRegistry) {

final OperationDefinition removeExtension = new SimpleOperationDefinitionBuilder("remove", new StandardResourceDescriptionResolver("test", "test", getClass().getClassLoader()))
.build();
Expand All @@ -121,5 +121,10 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
protected RunningMode getRunningMode() {
return RunningMode.ADMIN_ONLY;
}

@Deprecated
protected ProcessType getProcessType() {
return ProcessType.HOST_CONTROLLER;
}
}
}
Expand Up @@ -22,25 +22,20 @@
package org.jboss.as.jacorb;

import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.ADD;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.DESCRIBE;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.OP;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.OP_ADDR;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.SUBSYSTEM;

import javax.xml.stream.XMLStreamException;

import java.io.IOException;
import java.util.List;
import javax.xml.stream.XMLStreamException;

import org.jboss.as.controller.PathAddress;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.ProcessType;
import org.jboss.as.controller.RunningMode;
import org.jboss.as.controller.descriptions.ModelDescriptionConstants;
import org.jboss.as.model.test.ModelTestUtils;
import org.jboss.as.subsystem.test.AbstractSubsystemBaseTest;
import org.jboss.as.subsystem.test.AdditionalInitialization;
import org.jboss.as.subsystem.test.ControllerInitializer;
import org.jboss.as.subsystem.test.KernelServices;
import org.jboss.dmr.ModelNode;
import org.junit.Assert;
Expand Down Expand Up @@ -202,4 +197,17 @@ public void testSubsystemWithIORSettings() throws Exception {
super.standardSubsystemTest("subsystem-ior-settings.xml");
}

@Override
protected AdditionalInitialization createAdditionalInitialization() {
return AdditionalInitialization.ADMIN_ONLY_HC;
}

@Override
protected void validateDescribeOperation(KernelServices hc, AdditionalInitialization serverInit, ModelNode expectedModel) throws Exception {
final ModelNode operation = createDescribeOperation();
final ModelNode result = hc.executeOperation(operation);
Assert.assertTrue("The subsystem describe operation must fail",
result.hasDefined(ModelDescriptionConstants.FAILURE_DESCRIPTION));
}

}

0 comments on commit 46d666d

Please sign in to comment.