Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2011 Red Hat Inc. and/or its affiliates and other contributors
   * as indicated by the @authors tag. All rights reserved.
   * See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * This copyrighted material is made available to anyone wishing to use,
   * modify, copy, or redistribute it subject to the terms and conditions
  * of the GNU Lesser General Public License, v. 2.1.
  * This program is distributed in the hope that it will be useful, but WITHOUT A
  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  * You should have received a copy of the GNU Lesser General Public License,
  * v.2.1 along with this distribution; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  * MA  02110-1301, USA.
  */
 package org.jboss.as.domain.controller.operations.deployment;
 
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.CONTENT;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.DEPLOYMENT;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.ENABLED;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.HASH;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.NAME;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.REPLACE_DEPLOYMENT;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.TO_REPLACE;
 import static org.jboss.as.domain.controller.DomainControllerMessages.MESSAGES;
 
 
Handles replacement in the runtime of one deployment by another.

Author(s):
Brian Stansberry (c) 2011 Red Hat Inc.
 
 
     public static final String OPERATION_NAME = ;
 
     private final HostFileRepository fileRepository;
 
     public ServerGroupDeploymentReplaceHandler(final HostFileRepository fileRepository) {
         if (fileRepository == null) {
             throw .nullVar("fileRepository");
         }
         this. = fileRepository;
     }
 
     public void execute(OperationContext contextModelNode operationthrows OperationFailedException {
             def.validateOperation(operation);
         }
 
         if (name.equals(toReplace)) {
         }
 
         final PathElement deploymentPath = PathElement.pathElement(name);
         final PathElement replacePath = PathElement.pathElement(toReplace);
 
         Resource domainDeployment;
         try {
             // check if the domain deployment exists
             domainDeployment = context.readResourceFromRoot(..append(deploymentPath));
         } catch (NoSuchElementException e) {
             throw operationFailed(.noDeploymentContentWithName(name));
         }
 
         final ModelNode deployment = domainDeployment.getModel();
         for (ModelNode content : deployment.require().asList()) {
             if ((content.hasDefined())) {
                 byte[] hash = content.require().asBytes();
                 // Ensure the local repo has the files
                 .getDeploymentFiles(hash);
             }
         }
 
         final Resource serverGroup = context.readResourceForUpdate(.);
         if (! serverGroup.hasChild(replacePath)) {
             throw operationFailed(.noDeploymentContentWithName(toReplace));
         }
         final Resource replaceResource = context.readResourceForUpdate(..append(replacePath));
         //
        final Resource deploymentResource;
        if(! serverGroup.hasChild(deploymentPath)) {
            final Resource resource = context.createResource(..append(deploymentPath));
            final ModelNode deployNode = resource.getModel();
            deployNode.set(deployment); // Get the information from the domain deployment
            deployNode.remove(); // Prune the content information
            deployNode.get().set(true); // Enable
        } else {
            deploymentResource = context.readResourceForUpdate(..append(deploymentPath));
            ModelNode enabled = deploymentResource.getModel().hasDefined() ? deploymentResource.getModel().get() : new ModelNode(false);
            if (enabled.getType() == . && enabled.asBoolean()) {
                throw operationFailed(.deploymentAlreadyStarted(toReplace));
            }
            deploymentResource.getModel().get().set(true);
        }
        //
        replaceResource.getModel().get().set(false);
        context.stepCompleted();
    }
    private static OperationFailedException operationFailed(String msg) {
        return new OperationFailedException(new ModelNode().set(msg));
    }
New to GrepCode? Check out our FAQ X