Skip to content

Commit

Permalink
[WFLY-7570] Use the runtime-name from the deployment to determine the…
Browse files Browse the repository at this point in the history
… correct service name for the the job operator service.
  • Loading branch information
jamezp committed Nov 14, 2016
1 parent 6d118ad commit 79f490d
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 29 deletions.
@@ -1,13 +1,9 @@
package org.wildfly.extension.batch.jberet; package org.wildfly.extension.batch.jberet;


import org.jboss.as.controller.PathAddress;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.descriptions.ModelDescriptionConstants;
import org.jboss.as.server.deployment.DeploymentUnit; import org.jboss.as.server.deployment.DeploymentUnit;
import org.jboss.as.server.deployment.Services; import org.jboss.as.server.deployment.Services;
import org.jboss.as.threads.ThreadsServices; import org.jboss.as.threads.ThreadsServices;
import org.jboss.msc.service.ServiceName; import org.jboss.msc.service.ServiceName;
import org.wildfly.extension.batch.jberet._private.BatchLogger;


/** /**
* Service names for the batch subsystem. * Service names for the batch subsystem.
Expand Down Expand Up @@ -57,29 +53,23 @@ public static ServiceName jobOperatorServiceName(final DeploymentUnit deployment
/** /**
* Creates the service name used for the job operator registered for the deployment. * Creates the service name used for the job operator registered for the deployment.
* *
* @param address the address to resolve the deployment name from * @param deploymentRuntimeName the runtime name for the deployment
* *
* @return the service name * @return the service name
*/ */
public static ServiceName jobOperatorServiceName(final PathAddress address) { public static ServiceName jobOperatorServiceName(final String deploymentRuntimeName) {
String deploymentName = null; return Services.deploymentUnitName(deploymentRuntimeName).append("batch").append("job-operator");
String subdeploymentName = null; }
for (PathElement element : address) {
if (ModelDescriptionConstants.DEPLOYMENT.equals(element.getKey())) { /**
deploymentName = element.getValue(); * Creates the service name used for the job operator registered for the deployment.
} else if (ModelDescriptionConstants.SUBDEPLOYMENT.endsWith(element.getKey())) { *
subdeploymentName = element.getValue(); * @param deploymentRuntimeName the runtime name for the deployment
} * @param subdeploymentName the name of the subdeployment
} *
if (deploymentName == null) { * @return the service name
throw BatchLogger.LOGGER.couldNotFindDeploymentName(address.toString()); */
} public static ServiceName jobOperatorServiceName(final String deploymentRuntimeName, final String subdeploymentName) {
final ServiceName result; return Services.deploymentUnitName(deploymentRuntimeName, subdeploymentName).append("batch").append("job-operator");
if (subdeploymentName == null) {
result = Services.deploymentUnitName(deploymentName);
} else {
result = Services.deploymentUnitName(deploymentName, subdeploymentName);
}
return result.append("batch").append("job-operator");
} }
} }
Expand Up @@ -22,17 +22,19 @@


package org.wildfly.extension.batch.jberet.deployment; package org.wildfly.extension.batch.jberet.deployment;


import javax.batch.operations.JobOperator;

import java.util.Properties; import java.util.Properties;
import javax.batch.operations.JobOperator;


import org.jboss.as.controller.AttributeDefinition; import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.OperationContext; import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException; import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.OperationStepHandler; import org.jboss.as.controller.OperationStepHandler;
import org.jboss.as.controller.PathAddress; import org.jboss.as.controller.PathAddress;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.descriptions.ModelDescriptionConstants;
import org.jboss.dmr.ModelNode; import org.jboss.dmr.ModelNode;
import org.jboss.msc.service.ServiceController; import org.jboss.msc.service.ServiceController;
import org.jboss.msc.service.ServiceName;
import org.wildfly.extension.batch.jberet.BatchServiceNames; import org.wildfly.extension.batch.jberet.BatchServiceNames;
import org.wildfly.extension.batch.jberet._private.BatchLogger; import org.wildfly.extension.batch.jberet._private.BatchLogger;


Expand Down Expand Up @@ -63,8 +65,7 @@ protected JobOperationStepHandler(final boolean modify) {


@Override @Override
public final void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { public final void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException {
final PathAddress address = context.getCurrentAddress(); final ServiceController<?> controller = context.getServiceRegistry(modify).getService(getServiceName(context));
final ServiceController<?> controller = context.getServiceRegistry(modify).getService(BatchServiceNames.jobOperatorServiceName(address));
final JobOperator jobOperator = (JobOperator) controller.getService(); final JobOperator jobOperator = (JobOperator) controller.getService();
execute(context, operation, jobOperator); execute(context, operation, jobOperator);
} }
Expand Down Expand Up @@ -104,4 +105,33 @@ static OperationFailedException createOperationFailure(final Throwable cause) {
BatchLogger.LOGGER.debugf(cause, "Failed to process batch operation: %s", msg); BatchLogger.LOGGER.debugf(cause, "Failed to process batch operation: %s", msg);
return new OperationFailedException(msg, cause); return new OperationFailedException(msg, cause);
} }


private static ServiceName getServiceName(final OperationContext context) {
final PathAddress address = context.getCurrentAddress();
String deploymentName = null;
String subdeploymentName = null;
for (PathElement element : address) {
if (ModelDescriptionConstants.DEPLOYMENT.equals(element.getKey())) {
deploymentName = getRuntimeName(context, element);
} else if (ModelDescriptionConstants.SUBDEPLOYMENT.endsWith(element.getKey())) {
subdeploymentName = element.getValue();
}
}
if (deploymentName == null) {
throw BatchLogger.LOGGER.couldNotFindDeploymentName(address.toString());
}
if (subdeploymentName == null) {
return BatchServiceNames.jobOperatorServiceName(deploymentName);
}
return BatchServiceNames.jobOperatorServiceName(deploymentName, subdeploymentName);
}

private static String getRuntimeName(final OperationContext context, final PathElement element) {
final ModelNode deploymentModel = context.readResourceFromRoot(PathAddress.pathAddress(element), false).getModel();
if (!deploymentModel.hasDefined(ModelDescriptionConstants.RUNTIME_NAME)) {
throw BatchLogger.LOGGER.couldNotFindDeploymentName(context.getCurrentAddress().toString());
}
return deploymentModel.get(ModelDescriptionConstants.RUNTIME_NAME).asString();
}
} }

0 comments on commit 79f490d

Please sign in to comment.