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.DEPLOYMENT;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.OP_ADDR;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.REMOVE;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.SERVER_GROUP;
 import static org.jboss.as.domain.controller.DomainControllerLogger.DEPLOYMENT_LOGGER;
 import static org.jboss.as.domain.controller.DomainControllerMessages.MESSAGES;
 
 import java.util.List;
 
Handles removal of a deployment from the model. This can be used at either the domain deployments level or the server-group deployments level

Author(s):
Brian Stansberry (c) 2011 Red Hat Inc.
 
 public abstract class DeploymentRemoveHandler implements OperationStepHandler {
 
     public static final String OPERATION_NAME = ;

    
Constructor for a slave Host Controller
 
     private DeploymentRemoveHandler() {
     }
 
     public static DeploymentRemoveHandler createForSlave(DeploymentFileRepository fileRepository) {
         return new SlaveDeploymentRemoveHandler(fileRepository);
     }
 
     public static DeploymentRemoveHandler createForMaster(ContentRepository contentRepository) {
         return new MasterDeploymentRemoveHandler(contentRepository);
     }
 
     public void execute(OperationContext contextModelNode operationthrows OperationFailedException {
         checkCanRemove(contextoperation);
         final String name = PathAddress.pathAddress(operation.require()).getLastElement().getValue();
         final Resource resource = context.readResource(.);
         final List<byte[]> deploymentHashes = DeploymentUtils.getDeploymentHash(resource);
 
         context.removeResource(.);
 
         context.addStep(new OperationStepHandler() {
             public void execute(OperationContext contextModelNode operationthrows OperationFailedException {
 
                 context.completeStep(new OperationContext.ResultHandler() {
                     @Override
                     public void handleResult(ResultAction resultActionOperationContext contextModelNode operation) {
                         if (resultAction != .) {
                             removeContent(namedeploymentHashes);
                         }
                     }
                 });
             }
         }, ..);
 
         context.stepCompleted();
     }
 
     protected void checkCanRemove(OperationContext contextModelNode operationthrows OperationFailedException {
         final String deploymentName = PathAddress.pathAddress(operation.require()).getLastElement().getValue();
         final Resource root = context.readResourceFromRoot(.);
 
         if(root.hasChild(PathElement.pathElement())) {
             final List<StringbadGroups = new ArrayList<String>();
             for(final Resource.ResourceEntry entry : root.getChildren()) {
                 if(entry.hasChild(PathElement.pathElement(deploymentName))) {
                     badGroups.add(entry.getName());
                }
            }
            if (badGroups.size() > 0) {
                throw new OperationFailedException(new ModelNode().set(.cannotRemoveDeploymentInUse(deploymentNamebadGroups)));
            }
        }
    }
    abstract void removeContent(String nameList<byte[]> hashes);
    private static class MasterDeploymentRemoveHandler extends DeploymentRemoveHandler {
        final ContentRepository contentRepository;
        private MasterDeploymentRemoveHandler(ContentRepository contentRepository) {
            assert contentRepository != null : "Null contentRepository";
            this. = contentRepository;
        }
        @Override
        void removeContent(String nameList<byte[]> hashes) {
            for (byte[] hash : hashes) {
                try {
                    if ( != null) {
                        .removeContent(hashname);
                    }
                } catch (Exception e) {
                    .debugf(e"Exception occurred removing %s", Arrays.asList(hash));
                }
            }
        }
    }
    private static class SlaveDeploymentRemoveHandler extends DeploymentRemoveHandler {
        private SlaveDeploymentRemoveHandler(final DeploymentFileRepository fileRepository) {
            assert fileRepository != null : "Null fileRepository";
            this. = fileRepository;
        }
        @Override
        void removeContent(String nameList<byte[]> hashes) {
            for (byte[] hash : hashes) {
                try {
                    if ( != null) {
                        .deleteDeployment(hash);
                    }
                } catch (Exception e) {
                    .debugf(e"Exception occurred removing %s", Arrays.asList(hash));
                }
            }
        }
    }
New to GrepCode? Check out our FAQ X