/jboss-as-7.1.1.Final/host-controller/src/main/java/org/jboss/as/domain/controller/operations/deployment/AbstractDeploymentHandler.java
Java | 116 lines | 71 code | 13 blank | 32 comment | 11 complexity | 379cb0d52fd28c7c13f869f356697736 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
- /*
- * JBoss, Home of Professional Open Source.
- * Copyright (c) 2011, Red Hat, Inc., and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY 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 along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
- package org.jboss.as.domain.controller.operations.deployment;
- import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.BYTES;
- import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.INPUT_STREAM_INDEX;
- import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.URL;
- import static org.jboss.as.domain.controller.DomainControllerMessages.MESSAGES;
- import java.io.ByteArrayInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.Arrays;
- import java.util.List;
- import org.jboss.as.controller.OperationContext;
- import org.jboss.as.controller.OperationFailedException;
- import org.jboss.dmr.ModelNode;
- /**
- * @author <a href="mailto:cdewolf@redhat.com">Carlo de Wolf</a>
- */
- abstract class AbstractDeploymentHandler {
- protected static final List<String> CONTENT_ADDITION_PARAMETERS = Arrays.asList(INPUT_STREAM_INDEX, BYTES, URL);
- protected static String asString(final ModelNode node, final String name) {
- return node.has(name) ? node.require(name).asString() : null;
- }
- protected static OperationFailedException createFailureException(String format, Object... params) {
- return createFailureException(String.format(format, params));
- }
- protected static OperationFailedException createFailureException(Throwable cause, String format, Object... params) {
- return createFailureException(cause, String.format(format, params));
- }
- protected static OperationFailedException createFailureException(String msg) {
- return new OperationFailedException(new ModelNode().set(msg));
- }
- protected static OperationFailedException createFailureException(Throwable cause, String msg) {
- return new OperationFailedException(cause, new ModelNode().set(msg));
- }
- protected static InputStream getInputStream(OperationContext context, ModelNode operation) throws OperationFailedException {
- InputStream in = null;
- String message = "";
- if (operation.hasDefined(INPUT_STREAM_INDEX)) {
- int streamIndex = operation.get(INPUT_STREAM_INDEX).asInt();
- message = MESSAGES.nullStream(streamIndex);
- in = context.getAttachmentStream(streamIndex);
- } else if (operation.hasDefined(BYTES)) {
- message = MESSAGES.invalidByteStream();
- in = new ByteArrayInputStream(operation.get(BYTES).asBytes());
- } else if (operation.hasDefined(URL)) {
- final String urlSpec = operation.get(URL).asString();
- try {
- message = MESSAGES.invalidUrlStream();
- in = new URL(urlSpec).openStream();
- } catch (MalformedURLException e) {
- throw createFailureException(message);
- } catch (IOException e) {
- throw createFailureException(message);
- }
- }
- if (in == null) {
- throw createFailureException(message);
- }
- return in;
- }
- /**
- * Checks to see if a valid deployment parameter has been defined.
- *
- * @param operation the operation to check.
- *
- * @return {@code true} of the parameter is valid, otherwise {@code false}.
- */
- protected static boolean hasValidContentAdditionParameterDefined(ModelNode operation) {
- for (String s : CONTENT_ADDITION_PARAMETERS) {
- if (operation.hasDefined(s)) {
- return true;
- }
- }
- return false;
- }
- protected static void validateOnePieceOfContent(final ModelNode content) throws OperationFailedException {
- // TODO: implement overlays
- if (content.asList().size() != 1)
- throw createFailureException(MESSAGES.as7431());
- }
- }