diff --git a/ee/src/main/java/org/jboss/as/ee/subsystem/ContextServiceAdd.java b/ee/src/main/java/org/jboss/as/ee/subsystem/ContextServiceAdd.java index 5bef739c8f7d..5c5a6170de80 100755 --- a/ee/src/main/java/org/jboss/as/ee/subsystem/ContextServiceAdd.java +++ b/ee/src/main/java/org/jboss/as/ee/subsystem/ContextServiceAdd.java @@ -23,7 +23,7 @@ import org.glassfish.enterprise.concurrent.spi.ContextSetupProvider; import org.glassfish.enterprise.concurrent.spi.TransactionSetupProvider; -import org.jboss.as.controller.AbstractBoottimeAddStepHandler; +import org.jboss.as.controller.AbstractAddStepHandler; import org.jboss.as.controller.OperationContext; import org.jboss.as.controller.OperationFailedException; import org.jboss.as.controller.PathAddress; @@ -41,7 +41,7 @@ /** * @author Eduardo Martins */ -public class ContextServiceAdd extends AbstractBoottimeAddStepHandler { +public class ContextServiceAdd extends AbstractAddStepHandler { static final ContextServiceAdd INSTANCE = new ContextServiceAdd(); @@ -50,7 +50,7 @@ private ContextServiceAdd() { } @Override - protected void performBoottime(OperationContext context, ModelNode operation, Resource resource) throws OperationFailedException { + protected void performRuntime(OperationContext context, ModelNode operation, Resource resource) throws OperationFailedException { ModelNode model = resource.getModel(); final String name = PathAddress.pathAddress(operation.get(ModelDescriptionConstants.ADDRESS)).getLastElement().getValue(); diff --git a/testsuite/integration/basic/src/test/java/org/jboss/as/test/integration/ee/concurrent/EEConcurrentManagementTestCase.java b/testsuite/integration/basic/src/test/java/org/jboss/as/test/integration/ee/concurrent/EEConcurrentManagementTestCase.java index bda3a3567568..6a8b062e7fb8 100644 --- a/testsuite/integration/basic/src/test/java/org/jboss/as/test/integration/ee/concurrent/EEConcurrentManagementTestCase.java +++ b/testsuite/integration/basic/src/test/java/org/jboss/as/test/integration/ee/concurrent/EEConcurrentManagementTestCase.java @@ -29,6 +29,7 @@ import org.jboss.as.controller.PathAddress; import org.jboss.as.controller.PathElement; import org.jboss.as.controller.operations.common.Util; +import org.jboss.as.ee.subsystem.ContextServiceResourceDefinition; import org.jboss.as.ee.subsystem.EESubsystemModel; import org.jboss.as.ee.subsystem.EeExtension; import org.jboss.as.ee.subsystem.ManagedExecutorServiceResourceDefinition; @@ -43,6 +44,7 @@ import org.junit.Test; import org.junit.runner.RunWith; +import javax.enterprise.concurrent.ContextService; import javax.enterprise.concurrent.ManagedExecutorService; import javax.enterprise.concurrent.ManagedScheduledExecutorService; import javax.enterprise.concurrent.ManagedThreadFactory; @@ -72,6 +74,34 @@ public static Archive deploy() { .addAsManifestResource(new StringAsset("Dependencies: org.jboss.as.controller, org.jboss.as.ee\n"), "MANIFEST.MF"); } + @Test + public void testContextServiceManagement() throws Exception { + final PathAddress pathAddress = EE_SUBSYSTEM_PATH_ADDRESS.append(EESubsystemModel.CONTEXT_SERVICE, RESOURCE_NAME); + // add + final ModelNode addOperation = Util.createAddOperation(pathAddress); + final String jndiName = "java:jboss/ee/concurrency/contextservice/"+RESOURCE_NAME; + addOperation.get(ContextServiceResourceDefinition.JNDI_NAME).set(jndiName); + final ModelNode addResult = managementClient.getControllerClient().execute(addOperation); + Assert.assertFalse(addResult.get(FAILURE_DESCRIPTION).toString(), addResult.get(FAILURE_DESCRIPTION).isDefined()); + try { + // lookup + Assert.assertNotNull((ContextService)new InitialContext().lookup(jndiName)); + } finally { + // remove + final ModelNode removeOperation = Util.createRemoveOperation(pathAddress); + removeOperation.get(OPERATION_HEADERS, ALLOW_RESOURCE_SERVICE_RESTART).set(true); + final ModelNode removeResult = managementClient.getControllerClient().execute(removeOperation); + Assert.assertFalse(removeResult.get(FAILURE_DESCRIPTION).toString(), removeResult.get(FAILURE_DESCRIPTION) + .isDefined()); + try { + new InitialContext().lookup(jndiName); + Assert.fail(); + } catch (NameNotFoundException e) { + // expected + } + } + } + @Test public void testManagedThreadFactoryManagement() throws Exception { final PathAddress pathAddress = EE_SUBSYSTEM_PATH_ADDRESS.append(EESubsystemModel.MANAGED_THREAD_FACTORY, RESOURCE_NAME);