All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.smartics.maven.plugin.jboss.modules.descriptor.Directives Maven / Gradle / Ivy

Go to download

Generates an archive of modules based on information in a POM to be copied to an JBoss 7 installation.

The newest version!
/*
 * Copyright 2013-2018 smartics, Kronseder & Reiner GmbH
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package de.smartics.maven.plugin.jboss.modules.descriptor;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/**
 * Provides directives for a given {@link ModuleDescriptor module descriptor}.
 * Directives control the building process of a single module.
 */
public final class Directives
{
  // ********************************* Fields *********************************

  // --- constants ------------------------------------------------------------

  // --- members --------------------------------------------------------------

  /**
   * The flag to skip the export of the module. This allows to rename a
   * dependency to an existing module in JBoss, but not to create a module in
   * the target folder.
   */
  private Boolean skip;

  /**
   * The signal to control, if the slot is to be inherited to the dependencies
   * if not specified by a dependency otherwise. If set to false,
   * the default slot will be used instead of the module's slot.
   * 

* Useful to create extensions that have to reside in the main slot but have * to depend on modules in another slot. */ private Boolean inheritSlot; // ****************************** Initializer ******************************* // ****************************** Constructors ****************************** private Directives(final Builder builder) { this.skip = builder.skip; this.inheritSlot = builder.inheritSlot; } // ****************************** Inner Classes ***************************** /** * Builds instances of {@link Directives}. */ public static final class Builder { // ******************************** Fields ******************************** // --- constants ---------------------------------------------------------- // --- members ------------------------------------------------------------ /** * The flag to skip the export of the module. This allows to rename a * dependency to an existing module in JBoss, but not to create a module in * the target folder. *

* Defaults to false. *

*/ private Boolean skip = Boolean.FALSE; /** * The signal to control, if the slot is to be inherited to the dependencies * if not specified by a dependency otherwise. If set to false, * the default slot will be used instead of the module's slot. *

* Useful to create extensions that have to reside in the main slot but have * to depend on modules in another slot. *

* Defaults to true. *

*/ private Boolean inheritSlot = Boolean.TRUE; // ***************************** Initializer ****************************** // ***************************** Constructors ***************************** // ***************************** Inner Classes **************************** // ******************************** Methods ******************************* // --- init --------------------------------------------------------------- // --- get&set ------------------------------------------------------------ /** * Sets the flag to skip the export of the module. This allows to rename a * dependency to an existing module in JBoss, but not to create a module in * the target folder. * * @param skip the flag to skip the export of the module. * @return a reference to this builder. */ public Builder withSkip(final String skip) { if (StringUtils.isNotBlank(skip)) { this.skip = Boolean.parseBoolean(skip); } return this; } /** * Sets the signal to control, if the slot is to be inherited to the * dependencies if not specified by a dependency otherwise. If set to * false, the default slot will be used instead of the module's * slot. *

* Useful to create extensions that have to reside in the main slot but have * to depend on modules in another slot. * * @param inheritSlot the signal to control, if the slot is to be inherited * to the dependencies if not specified by a dependency otherwise. * @return a reference to this builder. */ public Builder withInheritSlot(final String inheritSlot) { if (StringUtils.isNotBlank(inheritSlot)) { this.inheritSlot = Boolean.parseBoolean(inheritSlot); } return this; } // --- business ----------------------------------------------------------- /** * Builds an instance of {@link Directives}. * * @return the instance. */ public Directives build() { return new Directives(this); } // --- object basics ------------------------------------------------------ } // ********************************* Methods ******************************** // --- init ----------------------------------------------------------------- // --- get&set -------------------------------------------------------------- /** * Returns the flag to skip the export of the module. This allows to rename a * dependency to an existing module in JBoss, but not to create a module in * the target folder. * * @return the flag to skip the export of the module. */ public Boolean getSkip() { return skip; } /** * Returns the signal to control, if the slot is to be inherited to the * dependencies if not specified by a dependency otherwise. If set to * false, the default slot will be used instead of the module's * slot. *

* Useful to create extensions that have to reside in the main slot but have * to depend on modules in another slot. * * @return the signal to control, if the slot is to be inherited to the * dependencies if not specified by a dependency otherwise. */ public Boolean getInheritSlot() { return inheritSlot; } // --- business ------------------------------------------------------------- /** * Merges the given directive with this instance. * * @param directives the instance to merge into this instance. */ public void merge(final Directives directives) { skip |= directives.skip; inheritSlot |= directives.inheritSlot; } // --- object basics -------------------------------------------------------- @Override public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE, false, null); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy