Fix JavaDoc syntax errors. Add check to circle build. (#791)
* Fix JavaDoc syntax errors. Add check to circle build. * One more code error * Added missing tags.
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
|
||||
# Run SonarQube only for master branch
|
||||
if [ $CIRCLE_BRANCH = master ] ; then
|
||||
mvn verify license:check sonar:sonar -Dsonar.login=$SONAR_ACCESS_TOKEN --batch-mode
|
||||
mvn verify license:check javadoc:javadoc sonar:sonar -Dsonar.login=$SONAR_ACCESS_TOKEN --batch-mode
|
||||
else
|
||||
mvn verify license:check --batch-mode
|
||||
mvn verify license:check javadoc:javadoc --batch-mode
|
||||
fi
|
||||
|
||||
@@ -38,7 +38,7 @@ public interface FieldNameProvider {
|
||||
*
|
||||
* @param propertyField
|
||||
* the given field
|
||||
* @return <true> contains <false> contains not
|
||||
* @return <code>true</code> contains <code>false</code> contains not
|
||||
*/
|
||||
default boolean containsSubEntityAttribute(final String propertyField) {
|
||||
|
||||
@@ -76,7 +76,7 @@ public interface FieldNameProvider {
|
||||
/**
|
||||
* Is the entity field a {@link Map}.
|
||||
*
|
||||
* @return <true> is a map <false> is not a map
|
||||
* @return <code>true</code> is a map <code>false</code> is not a map
|
||||
*/
|
||||
default boolean isMap() {
|
||||
return false;
|
||||
|
||||
@@ -374,19 +374,19 @@ public interface ControllerManagement {
|
||||
/**
|
||||
* Retrieves the specified number of messages from action history of the
|
||||
* given {@link Action} based on messageCount. Regardless of the value of
|
||||
* messageCount, in order to restrict resource utilization by controllers,
|
||||
* messageCount, in order to restrict resource utilisation by controllers,
|
||||
* maximum number of messages that are retrieved from database is limited by
|
||||
* {@link RepositoryConstants#MAX_ACTION_HISTORY_MSG_COUNT}. messageCount <
|
||||
* 0, retrieves the maximum allowed number of action status messages from
|
||||
* history; messageCount = 0, does not retrieve any message; and
|
||||
* messageCount > 0, retrieves the specified number of messages, limited by
|
||||
* maximum allowed number. A controller sends the feedback for an
|
||||
* {@link ActionStatus} as a list of messages; while returning the messages,
|
||||
* even though the messages from multiple {@link ActionStatus} are retrieved
|
||||
* in descending order by the reported time
|
||||
* ({@link ActionStatus#getOccurredAt()}), i.e. latest ActionStatus first,
|
||||
* the sub-ordering of messages from within single {@link ActionStatus} is
|
||||
* unspecified.
|
||||
* {@link RepositoryConstants#MAX_ACTION_HISTORY_MSG_COUNT}. messageCount
|
||||
* less then zero, retrieves the maximum allowed number of action status
|
||||
* messages from history; messageCount equal zero, does not retrieve any
|
||||
* message; and messageCount larger then zero, retrieves the specified
|
||||
* number of messages, limited by maximum allowed number. A controller sends
|
||||
* the feedback for an {@link ActionStatus} as a list of messages; while
|
||||
* returning the messages, even though the messages from multiple
|
||||
* {@link ActionStatus} are retrieved in descending order by the reported
|
||||
* time ({@link ActionStatus#getOccurredAt()}), i.e. latest ActionStatus
|
||||
* first, the sub-ordering of messages from within single
|
||||
* {@link ActionStatus} is unspecified.
|
||||
*
|
||||
* @param actionId
|
||||
* to be filtered on
|
||||
|
||||
@@ -16,17 +16,11 @@ import org.eclipse.hawkbit.repository.model.SoftwareModule;
|
||||
|
||||
/**
|
||||
* Thrown if user tries to add a {@link SoftwareModule} to a
|
||||
* {@link DistributionSet} that is not defined by< the
|
||||
* {@link DistributionSet} that is not defined by the
|
||||
* {@link DistributionSetType}.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class UnsupportedSoftwareModuleForThisDistributionSetException extends AbstractServerRtException {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
|
||||
@@ -13,22 +13,22 @@ package org.eclipse.hawkbit.repository.model;
|
||||
*
|
||||
* Supported operators.
|
||||
* <ul>
|
||||
* <li>Equal to : ==</li>
|
||||
* <li>Not equal to : !=</li>
|
||||
* <li>Less than : =lt= or <</li>
|
||||
* <li>Less than or equal to : =le= or <=</li>
|
||||
* <li>Greater than operator : =gt= or ></li>
|
||||
* <li>Greater than or equal to : =ge= or >=</li>
|
||||
* <li>{@code Equal to : ==}</li>
|
||||
* <li>{@code Not equal to : !=}</li>
|
||||
* <li>{@code Less than : =lt= or <}</li>
|
||||
* <li>{@code Less than or equal to : =le= or <=}</li>
|
||||
* <li>{@code Greater than operator : =gt= or >}</li>
|
||||
* <li>{@code Greater than or equal to : =ge= or >=}</li>
|
||||
* </ul>
|
||||
* Examples of RSQL expressions in both FIQL-like and alternative notation:
|
||||
* <ul>
|
||||
* <li>version==2.0.0</li>
|
||||
* <li>name==targetId1;description==plugAndPlay</li>
|
||||
* <li>name==targetId1 and description==plugAndPlay</li>
|
||||
* <li>name==targetId1;description==plugAndPlay</li>
|
||||
* <li>name==targetId1 and description==plugAndPlay</li>
|
||||
* <li>name==targetId1,description==plugAndPlay,updateStatus==UNKNOWN</li>
|
||||
* <li>name==targetId1 or description==plugAndPlay or updateStatus==UNKNOWN</li>
|
||||
* <li>{@code version==2.0.0}</li>
|
||||
* <li>{@code name==targetId1;description==plugAndPlay}</li>
|
||||
* <li>{@code name==targetId1 and description==plugAndPlay}</li>
|
||||
* <li>{@code name==targetId1;description==plugAndPlay}</li>
|
||||
* <li>{@code name==targetId1 and description==plugAndPlay}</li>
|
||||
* <li>{@code name==targetId1,description==plugAndPlay,updateStatus==UNKNOWN}</li>
|
||||
* <li>{@code name==targetId1 or description==plugAndPlay or updateStatus==UNKNOWN}</li>
|
||||
* </ul>
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -431,7 +431,7 @@ public interface ActionRepository extends BaseEntityRepository<JpaAction, Long>,
|
||||
* @param pageable
|
||||
* page parameters
|
||||
* @param rolloutId
|
||||
* the rollout the actions beglong to
|
||||
* the rollout the actions belong to
|
||||
* @param actionStatus
|
||||
* the status of the actions
|
||||
* @return the actions referring a specific rollout an in a specific status
|
||||
|
||||
@@ -6,77 +6,85 @@
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*/
|
||||
package org.eclipse.hawkbit.repository.model;
|
||||
package org.eclipse.hawkbit.repository.jpa;
|
||||
|
||||
import javax.persistence.PostLoad;
|
||||
import javax.persistence.PostPersist;
|
||||
import javax.persistence.PostRemove;
|
||||
import javax.persistence.PostUpdate;
|
||||
import javax.persistence.PrePersist;
|
||||
import javax.persistence.PreRemove;
|
||||
import javax.persistence.PreUpdate;
|
||||
|
||||
/**
|
||||
* Interface for the entity interceptor lifecycle.
|
||||
*/
|
||||
// Exception squid:EmptyStatementUsageCheck - don't want to force users to
|
||||
// impelemnt all methods
|
||||
// implement all methods
|
||||
@SuppressWarnings("squid:EmptyStatementUsageCheck")
|
||||
public interface EntityInterceptor {
|
||||
|
||||
/**
|
||||
* Callback for the {@link @PrePersist} lifecycle event.
|
||||
* Callback for the {@link PrePersist} lifecycle event.
|
||||
*
|
||||
* @param entity
|
||||
* the model entity
|
||||
*/
|
||||
default void prePersist(final Object entity) {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for the {@link @PostPersist} lifecycle event.
|
||||
* Callback for the {@link PostPersist} lifecycle event.
|
||||
*
|
||||
* @param entity
|
||||
* the model entity
|
||||
*/
|
||||
default void postPersist(final Object entity) {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for the {@link @PostRemove} lifecycle event.
|
||||
* Callback for the {@link PostRemove} lifecycle event.
|
||||
*
|
||||
* @param entity
|
||||
* the model entity
|
||||
*/
|
||||
default void postRemove(final Object entity) {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for the {@link @PreRemove} lifecycle event.
|
||||
* Callback for the {@link PreRemove} lifecycle event.
|
||||
*
|
||||
* @param entity
|
||||
* the model entity
|
||||
*/
|
||||
default void preRemove(final Object entity) {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for the {@link @PostLoad} lifecycle event.
|
||||
* Callback for the {@link PostLoad} lifecycle event.
|
||||
*
|
||||
* @param entity
|
||||
* the model entity
|
||||
*/
|
||||
default void postLoad(final Object entity) {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for the {@link @PreUpdate} lifecycle event.
|
||||
* Callback for the {@link PreUpdate} lifecycle event.
|
||||
*
|
||||
* @param entity
|
||||
* the model entity
|
||||
*/
|
||||
default void preUpdate(final Object entity) {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for the {@link @PostUpdate} lifecycle event.
|
||||
* Callback for the {@link PostUpdate} lifecycle event.
|
||||
*
|
||||
* @param entity
|
||||
* the model entity
|
||||
*/
|
||||
default void postUpdate(final Object entity) {
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,8 +18,8 @@ import javax.persistence.PrePersist;
|
||||
import javax.persistence.PreRemove;
|
||||
import javax.persistence.PreUpdate;
|
||||
|
||||
import org.eclipse.hawkbit.repository.jpa.EntityInterceptor;
|
||||
import org.eclipse.hawkbit.repository.jpa.model.helper.EntityInterceptorHolder;
|
||||
import org.eclipse.hawkbit.repository.model.EntityInterceptor;
|
||||
|
||||
/**
|
||||
* Entity listener which calls the callback's of all registered entity
|
||||
|
||||
@@ -11,7 +11,7 @@ package org.eclipse.hawkbit.repository.jpa.model.helper;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.hawkbit.repository.model.EntityInterceptor;
|
||||
import org.eclipse.hawkbit.repository.jpa.EntityInterceptor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
/**
|
||||
|
||||
@@ -65,21 +65,21 @@ import cz.jirutka.rsql.parser.ast.RSQLVisitor;
|
||||
* entities. RSQL parser library: https://github.com/jirutka/rsql-parser
|
||||
*
|
||||
* <ul>
|
||||
* <li>Equal to : ==</li>
|
||||
* <li>Not equal to : !=</li>
|
||||
* <li>Less than : =lt= or <</li>
|
||||
* <li>Less than or equal to : =le= or <=</li>
|
||||
* <li>Greater than operator : =gt= or ></li>
|
||||
* <li>Greater than or equal to : =ge= or >=</li>
|
||||
* <li>{@code Equal to : ==}</li>
|
||||
* <li>{@code Not equal to : !=}</li>
|
||||
* <li>{@code Less than : =lt= or <}</li>
|
||||
* <li>{@code Less than or equal to : =le= or <=}</li>
|
||||
* <li>{@code Greater than operator : =gt= or >}</li>
|
||||
* <li>{@code Greater than or equal to : =ge= or >=}</li>
|
||||
* </ul>
|
||||
* <p>
|
||||
* Examples of RSQL expressions in both FIQL-like and alternative notation:
|
||||
* <ul>
|
||||
* <li>version==2.0.0</li>
|
||||
* <li>name==targetId1;description==plugAndPlay</li>
|
||||
* <li>name==targetId1 and description==plugAndPlay</li>
|
||||
* <li>name==targetId1,description==plugAndPlay,updateStatus==UNKNOWN</li>
|
||||
* <li>name==targetId1 or description==plugAndPlay or updateStatus==UNKNOWN</li>
|
||||
* <li>{@code version==2.0.0}</li>
|
||||
* <li>{@code name==targetId1;description==plugAndPlay}</li>
|
||||
* <li>{@code name==targetId1 and description==plugAndPlay}</li>
|
||||
* <li>{@code name==targetId1,description==plugAndPlay,updateStatus==UNKNOWN}</li>
|
||||
* <li>{@code name==targetId1 or description==plugAndPlay or updateStatus==UNKNOWN}</li>
|
||||
* </ul>
|
||||
* <p>
|
||||
* There is also a mechanism that allows to refer to known macros that can
|
||||
|
||||
@@ -52,7 +52,7 @@ public final class DistributionSetTypeSpecification {
|
||||
|
||||
/**
|
||||
* {@link Specification} for retrieving {@link DistributionSetType} with
|
||||
* given {@link DistributionSetType#getName())} including fetching the
|
||||
* given {@link DistributionSetType#getName()} including fetching the
|
||||
* elements list.
|
||||
*
|
||||
* @param name
|
||||
|
||||
@@ -11,8 +11,8 @@ package org.eclipse.hawkbit.repository.jpa.model;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import org.eclipse.hawkbit.repository.jpa.AbstractJpaIntegrationTest;
|
||||
import org.eclipse.hawkbit.repository.jpa.EntityInterceptor;
|
||||
import org.eclipse.hawkbit.repository.jpa.model.helper.EntityInterceptorHolder;
|
||||
import org.eclipse.hawkbit.repository.model.EntityInterceptor;
|
||||
import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
|
||||
import org.eclipse.hawkbit.repository.model.Target;
|
||||
import org.junit.After;
|
||||
|
||||
@@ -104,19 +104,19 @@ public class TestdataFactory {
|
||||
public static final String DS_TYPE_DEFAULT = "test_default_ds_type";
|
||||
|
||||
/**
|
||||
* Key of test "os" {@link SoftwareModuleType} -> mandatory firmware in
|
||||
* Key of test "os" {@link SoftwareModuleType} : mandatory firmware in
|
||||
* {@link #DS_TYPE_DEFAULT}.
|
||||
*/
|
||||
public static final String SM_TYPE_OS = "os";
|
||||
|
||||
/**
|
||||
* Key of test "runtime" {@link SoftwareModuleType} -> optional firmware in
|
||||
* Key of test "runtime" {@link SoftwareModuleType} : optional firmware in
|
||||
* {@link #DS_TYPE_DEFAULT}.
|
||||
*/
|
||||
public static final String SM_TYPE_RT = "runtime";
|
||||
|
||||
/**
|
||||
* Key of test "application" {@link SoftwareModuleType} -> optional software
|
||||
* Key of test "application" {@link SoftwareModuleType} : optional software
|
||||
* in {@link #DS_TYPE_DEFAULT}.
|
||||
*/
|
||||
public static final String SM_TYPE_APP = "application";
|
||||
@@ -466,9 +466,8 @@ public class TestdataFactory {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
final String artifactData = "some test data" + i;
|
||||
final InputStream stubInputStream = IOUtils.toInputStream(artifactData, Charset.forName("UTF-8"));
|
||||
artifacts.add(
|
||||
artifactManagement.create(new ArtifactUpload(stubInputStream, moduleId, "filename" + i, false,
|
||||
artifactData.length())));
|
||||
artifacts.add(artifactManagement.create(
|
||||
new ArtifactUpload(stubInputStream, moduleId, "filename" + i, false, artifactData.length())));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ public @interface WithUser {
|
||||
/**
|
||||
* Should tenant auto created.
|
||||
*
|
||||
* @return <true> = auto create <false> not create
|
||||
* @return <code>true</code> = auto create <code>false</code> not create
|
||||
*/
|
||||
boolean autoCreateTenant() default true;
|
||||
|
||||
|
||||
@@ -143,11 +143,12 @@ public interface DdiRootControllerRestApi {
|
||||
* resource utilization by controllers, maximum number of
|
||||
* messages that are retrieved from database is limited by
|
||||
* {@link RepositoryConstants#MAX_ACTION_HISTORY_MSG_COUNT}.
|
||||
* actionHistoryMessageCount < 0, retrieves the maximum allowed
|
||||
* number of action status messages from history;
|
||||
* actionHistoryMessageCount = 0, does not retrieve any message;
|
||||
* and actionHistoryMessageCount > 0, retrieves the specified
|
||||
* number of messages, limited by maximum allowed number.
|
||||
* actionHistoryMessageCount less then zero, retrieves the
|
||||
* maximum allowed number of action status messages from history;
|
||||
* actionHistoryMessageCount equal to zero, does not retrieve any
|
||||
* message; and actionHistoryMessageCount greater then zero,
|
||||
* retrieves the specified number of messages, limited by maximum
|
||||
* allowed number.
|
||||
* @param request
|
||||
* the HTTP request injected by spring
|
||||
* @return the response
|
||||
|
||||
@@ -26,12 +26,13 @@ import org.springframework.security.core.GrantedAuthority;
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* The Permissions cover CRUD for two data areas of SP:<br/>
|
||||
* <br/>
|
||||
* The Permissions cover CRUD for two data areas:
|
||||
*
|
||||
* XX_Target_CRUD which covers the following entities: {@link Target} entities
|
||||
* including metadata, {@link TargetTag}s, {@link TargetRegistrationRule}s<br/>
|
||||
* including metadata, {@link TargetTag}s, {@link TargetRegistrationRule}s
|
||||
* XX_Repository CRUD which covers: {@link DistributionSet}s,
|
||||
* {@link SoftwareModule}s, DS Tags<br/>
|
||||
* {@link SoftwareModule}s, DS Tags
|
||||
* </p>
|
||||
*/
|
||||
public final class SpPermission {
|
||||
|
||||
@@ -179,11 +180,14 @@ public final class SpPermission {
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Contains all the spring security evaluation expressions for the
|
||||
* {@link PreAuthorize} annotation for method security.
|
||||
* <p/>
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Examples:
|
||||
* <p/>
|
||||
*
|
||||
* {@code
|
||||
* hasRole([role]) Returns true if the current principal has the specified role.
|
||||
* hasAnyRole([role1,role2]) Returns true if the current principal has any of the supplied roles (given as a comma-separated list of strings)
|
||||
@@ -196,7 +200,7 @@ public final class SpPermission {
|
||||
* isAuthenticated() Returns true if the user is not anonymous
|
||||
* isFullyAuthenticated() Returns true if the user is not an anonymous or a remember-me user
|
||||
* }
|
||||
*
|
||||
* </p>
|
||||
*/
|
||||
public static final class SpringEvalExpressions {
|
||||
/*
|
||||
|
||||
@@ -22,17 +22,15 @@ public interface PreAuthenticationFilter {
|
||||
/**
|
||||
* Check if the filter is enabled.
|
||||
*
|
||||
* @param secruityToken
|
||||
* the secruity info
|
||||
* @return <true> is enabled <false> diabled
|
||||
* @param secruityToken the secruity info
|
||||
* @return <code>true</code> is enabled <code>false</code> diabled
|
||||
*/
|
||||
boolean isEnable(DmfTenantSecurityToken secruityToken);
|
||||
|
||||
/**
|
||||
* Extract the principal information from the current secruityToken.
|
||||
*
|
||||
* @param secruityToken
|
||||
* the secruityToken
|
||||
* @param secruityToken the secruityToken
|
||||
* @return the extracted tenant and controller id
|
||||
*/
|
||||
HeaderAuthentication getPreAuthenticatedPrincipal(DmfTenantSecurityToken secruityToken);
|
||||
@@ -40,18 +38,16 @@ public interface PreAuthenticationFilter {
|
||||
/**
|
||||
* Extract the principal credentials from the current secruityToken.
|
||||
*
|
||||
* @param secruityToken
|
||||
* the secruityToken
|
||||
* @param secruityToken the secruityToken
|
||||
* @return the extracted tenant and controller id
|
||||
*/
|
||||
Object getPreAuthenticatedCredentials(DmfTenantSecurityToken secruityToken);
|
||||
|
||||
/**
|
||||
* Allows to add additional authorities to the successful authenticated
|
||||
* token.
|
||||
* Allows to add additional authorities to the successful authenticated token.
|
||||
*
|
||||
* @return the authorities granted to the principal, or an empty collection
|
||||
* if the token has not been authenticated. Never null.
|
||||
* @return the authorities granted to the principal, or an empty collection if
|
||||
* the token has not been authenticated. Never null.
|
||||
* @see Authentication#getAuthorities()
|
||||
*/
|
||||
default Collection<GrantedAuthority> getSuccessfulAuthenticationAuthorities() {
|
||||
|
||||
@@ -85,7 +85,8 @@ public abstract class AbstractHawkbitUI extends UI implements DetachListener {
|
||||
|
||||
protected AbstractHawkbitUI(final EventPushStrategy pushStrategy, final UIEventBus eventBus,
|
||||
final SpringViewProvider viewProvider, final ApplicationContext context, final DashboardMenu dashboardMenu,
|
||||
final ErrorView errorview, final NotificationUnreadButton notificationUnreadButton, final UiProperties uiProperties) {
|
||||
final ErrorView errorview, final NotificationUnreadButton notificationUnreadButton,
|
||||
final UiProperties uiProperties) {
|
||||
this.pushStrategy = pushStrategy;
|
||||
this.eventBus = eventBus;
|
||||
this.viewProvider = viewProvider;
|
||||
|
||||
@@ -27,7 +27,7 @@ public class SpPermissionChecker implements Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the read Target & Dist Permission.
|
||||
* Gets the read Target and repository Permission.
|
||||
*
|
||||
* @return TARGET_REPOSITORY_READ boolean value
|
||||
*/
|
||||
|
||||
@@ -43,8 +43,6 @@ public class UiProperties implements Serializable {
|
||||
this.gravatar = gravatar;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Localization information
|
||||
*/
|
||||
|
||||
@@ -42,7 +42,7 @@ public final class ColorPickerHelper {
|
||||
}
|
||||
|
||||
/**
|
||||
* Covert RGB code to {@Color}.
|
||||
* Covert RGB code to {@link Color}.
|
||||
*
|
||||
* @param value
|
||||
* RGB vale
|
||||
|
||||
@@ -61,8 +61,7 @@ import com.vaadin.ui.renderers.ClickableRenderer.RendererClickEvent;
|
||||
* M is the metadata
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractMetadataPopupLayout<E extends NamedEntity, M extends MetaData>
|
||||
extends CustomComponent {
|
||||
public abstract class AbstractMetadataPopupLayout<E extends NamedEntity, M extends MetaData> extends CustomComponent {
|
||||
|
||||
private static final String DELETE_BUTTON = "DELETE_BUTTON";
|
||||
|
||||
@@ -136,13 +135,13 @@ public abstract class AbstractMetadataPopupLayout<E extends NamedEntity, M exten
|
||||
* entity for which metadata data is displayed
|
||||
* @param metaDatakey
|
||||
* metadata key to be selected
|
||||
* @return @link{CommonDialogWindow}
|
||||
* @return {@link CommonDialogWindow}
|
||||
*/
|
||||
public CommonDialogWindow getWindow(final E entity, final String metaDatakey) {
|
||||
selectedEntity = entity;
|
||||
|
||||
metadataWindow = new WindowBuilder(SPUIDefinitions.CREATE_UPDATE_WINDOW)
|
||||
.caption(getMetadataCaption()).content(this).cancelButtonClickListener(event -> onCancel())
|
||||
metadataWindow = new WindowBuilder(SPUIDefinitions.CREATE_UPDATE_WINDOW).caption(getMetadataCaption())
|
||||
.content(this).cancelButtonClickListener(event -> onCancel())
|
||||
.id(UIComponentIdProvider.METADATA_POPUP_ID).layout(mainLayout).i18n(i18n)
|
||||
.saveDialogCloseListener(new SaveOnDialogCloseListener()).buildCommonDialogWindow();
|
||||
|
||||
|
||||
@@ -554,22 +554,24 @@ public class CommonDialogWindow extends Window {
|
||||
/**
|
||||
* Checks if the safe action can executed.
|
||||
*
|
||||
* @return <true> = save action can executed <false> = cannot execute
|
||||
* safe action .
|
||||
* @return <code>true</code> = save action can executed
|
||||
* <code>false</code> = cannot execute safe action .
|
||||
*/
|
||||
boolean canWindowSaveOrUpdate();
|
||||
|
||||
/**
|
||||
* Checks if the window can closed after the safe action is executed
|
||||
*
|
||||
* @return <true> = window will close <false> = will not closed.
|
||||
* @return <code>true</code> = window will close <code>false</code> =
|
||||
* will not closed.
|
||||
*/
|
||||
default boolean canWindowClose() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves/Updates action. Is called if canWindowSaveOrUpdate is <true>.
|
||||
* Saves/Updates action. Is called if canWindowSaveOrUpdate is
|
||||
* <code>true</code>.
|
||||
*
|
||||
*/
|
||||
void saveOrUpdate();
|
||||
|
||||
@@ -37,9 +37,8 @@ public final class UserDetailsFormatter {
|
||||
|
||||
/**
|
||||
* Load user details by the user name and format the user name to max 100
|
||||
* characters.
|
||||
*
|
||||
* @see {@link UserDetailsFormatter#loadAndFormatUsername(String, int)}
|
||||
* characters. See
|
||||
* {@link UserDetailsFormatter#loadAndFormatUsername(String, int)}.
|
||||
*
|
||||
* @param username
|
||||
* the user name
|
||||
|
||||
@@ -44,8 +44,7 @@ public class TargetMetadataDetailsLayout extends AbstractMetadataDetailsLayout {
|
||||
* @param targetMetadataPopupLayout
|
||||
* the target metadata popup layout
|
||||
*/
|
||||
public TargetMetadataDetailsLayout(final VaadinMessageSource i18n,
|
||||
final TargetManagement targetManagement,
|
||||
public TargetMetadataDetailsLayout(final VaadinMessageSource i18n, final TargetManagement targetManagement,
|
||||
final TargetMetadataPopupLayout targetMetadataPopupLayout) {
|
||||
super(i18n);
|
||||
this.targetManagement = targetManagement;
|
||||
|
||||
@@ -291,53 +291,53 @@ public abstract class AbstractGrid<T extends Indexed> extends Grid implements Re
|
||||
}
|
||||
|
||||
/**
|
||||
* Template method invoked by {@link this#addNewContainerDS()} for creating
|
||||
* a container instance.
|
||||
* Template method invoked by {@link #addNewContainerDS()} for creating a
|
||||
* container instance.
|
||||
*
|
||||
* @return new container instance used by the grid.
|
||||
*/
|
||||
protected abstract T createContainer();
|
||||
|
||||
/**
|
||||
* Template method invoked by {@link this#addNewContainerDS()} for adding
|
||||
* Template method invoked by {@link #addNewContainerDS()} for adding
|
||||
* properties to the container (usually by invoking { @link
|
||||
* Container#addContainerProperty(Object, Class, Object))})
|
||||
*/
|
||||
protected abstract void addContainerProperties();
|
||||
|
||||
/**
|
||||
* Template method invoked by {@link this#addNewContainerDS()} for setting
|
||||
* the expand ratio of the columns.
|
||||
* Template method invoked by {@link #addNewContainerDS()} for setting the
|
||||
* expand ratio of the columns.
|
||||
*/
|
||||
protected abstract void setColumnExpandRatio();
|
||||
|
||||
/**
|
||||
* Template method invoked by {@link this#addNewContainerDS()} for setting
|
||||
* the column names.
|
||||
* Template method invoked by {@link #addNewContainerDS()} for setting the
|
||||
* column names.
|
||||
*/
|
||||
protected abstract void setColumnHeaderNames();
|
||||
|
||||
/**
|
||||
* Template method invoked by {@link this#addNewContainerDS()} for setting
|
||||
* the column properties to the grid.
|
||||
* Template method invoked by {@link #addNewContainerDS()} for setting the
|
||||
* column properties to the grid.
|
||||
*/
|
||||
protected abstract void setColumnProperties();
|
||||
|
||||
/**
|
||||
* Template method invoked by {@link this#addNewContainerDS()} for adding
|
||||
* Template method invoked by {@link #addNewContainerDS()} for adding
|
||||
* special column renderers if needed.
|
||||
*/
|
||||
protected abstract void addColumnRenderes();
|
||||
|
||||
/**
|
||||
* Template method invoked by {@link this#addNewContainerDS()} that hides
|
||||
* columns. If a column is hidable and hidden, it can be made visible via
|
||||
* Template method invoked by {@link #addNewContainerDS()} that hides
|
||||
* columns. If a column is hideable and hidden, it can be made visible via
|
||||
* grid column menu.
|
||||
*/
|
||||
protected abstract void setHiddenColumns();
|
||||
|
||||
/**
|
||||
* Template method invoked by {@link this#addNewContainerDS()} for adding a
|
||||
* Template method invoked by {@link #addNewContainerDS()} for adding a
|
||||
* CellDescriptionGenerator to the grid.
|
||||
*/
|
||||
protected abstract CellDescriptionGenerator getDescriptionGenerator();
|
||||
|
||||
@@ -236,8 +236,8 @@ public final class SPUIComponentProvider {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create label which represents the
|
||||
* {@link BaseEntity#getLastModifiedBy()()} by user name
|
||||
* Create label which represents the {@link BaseEntity#getLastModifiedBy()}
|
||||
* by user name
|
||||
*
|
||||
* @param i18n
|
||||
* the i18n
|
||||
|
||||
@@ -244,8 +244,7 @@ public class DistributionSetTable extends AbstractNamedVersionTable<Distribution
|
||||
}
|
||||
assignSoftwareModulesToDs(softwareModules, ds);
|
||||
|
||||
openConfirmationWindowForAssignment(ds.getName(),
|
||||
softwareModules.stream().map(SoftwareModuleIdName::new)
|
||||
openConfirmationWindowForAssignment(ds.getName(), softwareModules.stream().map(SoftwareModuleIdName::new)
|
||||
.toArray(size -> new SoftwareModuleIdName[size]));
|
||||
});
|
||||
}
|
||||
@@ -269,15 +268,13 @@ public class DistributionSetTable extends AbstractNamedVersionTable<Distribution
|
||||
addSoftwareModulesToConsolidatedDsAssignmentMap(distributionSet, softwareModules);
|
||||
|
||||
final Set<SoftwareModuleIdName> softwareModulesThatNeedToBeAssigned = new HashSet<>();
|
||||
getConsolidatedAssignmentMap(distributionSet).values()
|
||||
.forEach(softwareModulesThatNeedToBeAssigned::addAll);
|
||||
getConsolidatedAssignmentMap(distributionSet).values().forEach(softwareModulesThatNeedToBeAssigned::addAll);
|
||||
|
||||
manageDistUIState.getAssignedList().put(new DistributionSetIdName(distributionSet),
|
||||
softwareModulesThatNeedToBeAssigned);
|
||||
}
|
||||
|
||||
private Map<Long, Set<SoftwareModuleIdName>> getConsolidatedAssignmentMap(
|
||||
final DistributionSet distributionSet) {
|
||||
private Map<Long, Set<SoftwareModuleIdName>> getConsolidatedAssignmentMap(final DistributionSet distributionSet) {
|
||||
final DistributionSetIdName distributionSetIdName = new DistributionSetIdName(distributionSet);
|
||||
final Map<Long, Set<SoftwareModuleIdName>> map;
|
||||
if (manageDistUIState.getConsolidatedDistSoftwareList().containsKey(distributionSetIdName)) {
|
||||
@@ -358,8 +355,8 @@ public class DistributionSetTable extends AbstractNamedVersionTable<Distribution
|
||||
});
|
||||
|
||||
int count = 0;
|
||||
for (final Entry<DistributionSetIdName, Set<SoftwareModuleIdName>> entry : manageDistUIState
|
||||
.getAssignedList().entrySet()) {
|
||||
for (final Entry<DistributionSetIdName, Set<SoftwareModuleIdName>> entry : manageDistUIState.getAssignedList()
|
||||
.entrySet()) {
|
||||
count += entry.getValue().size();
|
||||
}
|
||||
|
||||
@@ -378,7 +375,6 @@ public class DistributionSetTable extends AbstractNamedVersionTable<Distribution
|
||||
manageDistUIState.getConsolidatedDistSoftwareList().clear();
|
||||
}
|
||||
|
||||
|
||||
private boolean validateAssignment(final SoftwareModule sm, final DistributionSet ds) {
|
||||
final String dsNameAndVersion = HawkbitCommonUtil.concatStrings(":", ds.getName(), ds.getVersion());
|
||||
final String smNameAndVersion = HawkbitCommonUtil.concatStrings(":", sm.getName(), sm.getVersion());
|
||||
@@ -388,17 +384,15 @@ public class DistributionSetTable extends AbstractNamedVersionTable<Distribution
|
||||
if (sm.getType().getMaxAssignments() < 1) {
|
||||
return false;
|
||||
}
|
||||
if (targetManagement.countByFilters(null, null, null, ds.getId(), Boolean.FALSE,
|
||||
new String[] {}) > 0) {
|
||||
if (targetManagement.countByFilters(null, null, null, ds.getId(), Boolean.FALSE, new String[] {}) > 0) {
|
||||
/* Distribution is already assigned */
|
||||
getNotification().displayValidationError(getI18n().getMessage("message.dist.inuse",
|
||||
dsNameAndVersion));
|
||||
getNotification().displayValidationError(getI18n().getMessage("message.dist.inuse", dsNameAndVersion));
|
||||
return false;
|
||||
}
|
||||
if (ds.getModules().contains(sm)) {
|
||||
/* Already has software module */
|
||||
getNotification().displayValidationError(getI18n().getMessage("message.software.dist.already.assigned",
|
||||
smNameAndVersion, dsNameAndVersion));
|
||||
getNotification().displayValidationError(
|
||||
getI18n().getMessage("message.software.dist.already.assigned", smNameAndVersion, dsNameAndVersion));
|
||||
return false;
|
||||
}
|
||||
if (!ds.getType().containsModuleType(sm.getType())) {
|
||||
@@ -408,17 +402,16 @@ public class DistributionSetTable extends AbstractNamedVersionTable<Distribution
|
||||
return false;
|
||||
}
|
||||
if (distributionSetManagement.isInUse(ds.getId())) {
|
||||
getNotification()
|
||||
.displayValidationError(getI18n().getMessage("message.error.notification.ds.target.assigned",
|
||||
ds.getName(), ds.getVersion()));
|
||||
getNotification().displayValidationError(getI18n()
|
||||
.getMessage("message.error.notification.ds.target.assigned", ds.getName(), ds.getVersion()));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean isSoftwareModuleDragged(final Long distId, final SoftwareModule sm) {
|
||||
for (final Entry<DistributionSetIdName, Set<SoftwareModuleIdName>> entry : manageDistUIState
|
||||
.getAssignedList().entrySet()) {
|
||||
for (final Entry<DistributionSetIdName, Set<SoftwareModuleIdName>> entry : manageDistUIState.getAssignedList()
|
||||
.entrySet()) {
|
||||
if (!distId.equals(entry.getKey().getId())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,8 @@ import com.vaadin.ui.VerticalLayout;
|
||||
/**
|
||||
* Pop up layout to display software module metadata.
|
||||
*/
|
||||
public class SwMetadataPopupLayout extends AbstractMetadataPopupLayoutVersioned<SoftwareModule, SoftwareModuleMetadata> {
|
||||
public class SwMetadataPopupLayout
|
||||
extends AbstractMetadataPopupLayoutVersioned<SoftwareModule, SoftwareModuleMetadata> {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
@@ -186,7 +186,8 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button
|
||||
saveButton = createSaveButton();
|
||||
searchIcon = createSearchIcon();
|
||||
|
||||
helpLink = SPUIComponentProvider.getHelpLink(i18n, uiProperties.getLinks().getDocumentation().getTargetfilterView());
|
||||
helpLink = SPUIComponentProvider.getHelpLink(i18n,
|
||||
uiProperties.getLinks().getDocumentation().getTargetfilterView());
|
||||
|
||||
closeIcon = createSearchResetIcon();
|
||||
}
|
||||
|
||||
@@ -144,8 +144,8 @@ public class TargetBulkUpdateWindowLayout extends CustomComponent {
|
||||
progressBar = creatreProgressBar();
|
||||
targetsCountLabel = getStatusCountLabel();
|
||||
bulkUploader = getBulkUploadHandler();
|
||||
linkToSystemConfigHelp = SPUIComponentProvider
|
||||
.getHelpLink(i18n, uiproperties.getLinks().getDocumentation().getDeploymentView());
|
||||
linkToSystemConfigHelp = SPUIComponentProvider.getHelpLink(i18n,
|
||||
uiproperties.getLinks().getDocumentation().getDeploymentView());
|
||||
windowCaption = new Label(i18n.getMessage("caption.bulk.upload.targets"));
|
||||
minimizeButton = getMinimizeButton();
|
||||
closeButton = getCloseButton();
|
||||
|
||||
@@ -84,14 +84,12 @@ public class TargetDetails extends AbstractTableDetailsLayout<Target> {
|
||||
this.targetTagToken = new TargetTagToken(permissionChecker, i18n, uiNotification, eventBus, managementUIState,
|
||||
tagManagement, targetManagement);
|
||||
this.targetAddUpdateWindowLayout = new TargetAddUpdateWindowLayout(i18n, targetManagement, eventBus,
|
||||
uiNotification,
|
||||
entityFactory, targetTable);
|
||||
uiNotification, entityFactory, targetTable);
|
||||
this.uiNotification = uiNotification;
|
||||
this.targetManagement = targetManagement;
|
||||
this.deploymentManagement = deploymentManagement;
|
||||
this.targetMetadataPopupLayout = targetMetadataPopupLayout;
|
||||
this.targetMetadataTable = new TargetMetadataDetailsLayout(i18n, targetManagement,
|
||||
targetMetadataPopupLayout);
|
||||
this.targetMetadataTable = new TargetMetadataDetailsLayout(i18n, targetManagement, targetMetadataPopupLayout);
|
||||
addDetailsTab();
|
||||
restoreState();
|
||||
}
|
||||
|
||||
@@ -49,10 +49,8 @@ public class TargetMetadataPopupLayout extends AbstractMetadataPopupLayout<Targe
|
||||
|
||||
@Override
|
||||
protected MetaData createMetadata(final Target entity, final String key, final String value) {
|
||||
final TargetMetadata metaData = targetManagement
|
||||
.createMetaData(entity.getControllerId(),
|
||||
Collections.singletonList(entityFactory.generateTargetMetadata(key, value)))
|
||||
.get(0);
|
||||
final TargetMetadata metaData = targetManagement.createMetaData(entity.getControllerId(),
|
||||
Collections.singletonList(entityFactory.generateTargetMetadata(key, value))).get(0);
|
||||
setSelectedEntity(metaData.getTarget());
|
||||
return metaData;
|
||||
}
|
||||
|
||||
@@ -51,7 +51,8 @@ public class TargetTableLayout extends AbstractTableLayout<TargetTable> {
|
||||
eventBus, targetManagement, entityFactory, permissionChecker);
|
||||
this.eventBus = eventBus;
|
||||
this.targetDetails = new TargetDetails(i18n, eventBus, permissionChecker, managementUIState, uiNotification,
|
||||
tagManagement, targetManagement, targetMetadataPopupLayout, deploymentManagement, entityFactory, targetTable);
|
||||
tagManagement, targetManagement, targetMetadataPopupLayout, deploymentManagement, entityFactory,
|
||||
targetTable);
|
||||
this.targetTableHeader = new TargetTableHeader(i18n, permissionChecker, eventBus, uiNotification,
|
||||
managementUIState, managementViewClientCriterion, targetManagement, deploymentManagement, uiProperties,
|
||||
entityFactory, uiNotification, tagManagement, distributionSetManagement, uiExecutor, targetTable);
|
||||
|
||||
@@ -310,8 +310,8 @@ public final class DashboardMenu extends CustomComponent {
|
||||
/**
|
||||
* Is a View available.
|
||||
*
|
||||
* @return the accessibleViewsEmpty <true> no rights for any view <false> a
|
||||
* view is available
|
||||
* @return the accessibleViewsEmpty <code>true</code> no rights for any view
|
||||
* <code>false</code> a view is available
|
||||
*/
|
||||
public boolean isAccessibleViewsEmpty() {
|
||||
return accessibleViewsEmpty;
|
||||
@@ -352,7 +352,7 @@ public final class DashboardMenu extends CustomComponent {
|
||||
*
|
||||
* @param viewName
|
||||
* the view name
|
||||
* @return <true> = denied, <false> = accessible
|
||||
* @return <code>true</code> = denied, <code>false</code> = accessible
|
||||
*/
|
||||
public boolean isAccessDenied(final String viewName) {
|
||||
final List<DashboardMenuItem> accessibleViews = getAccessibleViews();
|
||||
|
||||
@@ -1107,8 +1107,7 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
||||
|
||||
private enum ERROR_THRESHOLD_OPTIONS {
|
||||
|
||||
PERCENT("label.errorthreshold.option.percent"),
|
||||
COUNT("label.errorthreshold.option.count");
|
||||
PERCENT("label.errorthreshold.option.percent"), COUNT("label.errorthreshold.option.count");
|
||||
|
||||
private final String value;
|
||||
|
||||
|
||||
@@ -128,8 +128,8 @@ public class AuthenticationConfigurationView extends BaseConfigurationView
|
||||
gridLayout.addComponent(downloadAnonymousCheckBox, 0, 3);
|
||||
gridLayout.addComponent(anonymousDownloadAuthenticationConfigurationItem, 1, 3);
|
||||
|
||||
final Link linkToSecurityHelp = SPUIComponentProvider
|
||||
.getHelpLink(i18n, uiProperties.getLinks().getDocumentation().getSecurity());
|
||||
final Link linkToSecurityHelp = SPUIComponentProvider.getHelpLink(i18n,
|
||||
uiProperties.getLinks().getDocumentation().getSecurity());
|
||||
gridLayout.addComponent(linkToSecurityHelp, 2, 3);
|
||||
gridLayout.setComponentAlignment(linkToSecurityHelp, Alignment.BOTTOM_RIGHT);
|
||||
|
||||
|
||||
@@ -73,8 +73,8 @@ public class RolloutConfigurationView extends BaseConfigurationView
|
||||
hLayout.addComponent(approvalCheckbox);
|
||||
hLayout.addComponent(approvalConfigurationItem);
|
||||
|
||||
final Link linkToApprovalHelp = SPUIComponentProvider
|
||||
.getHelpLink(i18n, uiProperties.getLinks().getDocumentation().getRollout());
|
||||
final Link linkToApprovalHelp = SPUIComponentProvider.getHelpLink(i18n,
|
||||
uiProperties.getLinks().getDocumentation().getRollout());
|
||||
hLayout.addComponent(linkToApprovalHelp);
|
||||
hLayout.setComponentAlignment(linkToApprovalHelp, Alignment.BOTTOM_RIGHT);
|
||||
|
||||
|
||||
@@ -153,8 +153,8 @@ public class TenantConfigurationDashboardView extends CustomComponent implements
|
||||
undoConfigurationBtn.addClickListener(event -> undoConfiguration());
|
||||
hlayout.addComponent(undoConfigurationBtn);
|
||||
|
||||
final Link linkToSystemConfigHelp = SPUIComponentProvider
|
||||
.getHelpLink(i18n, uiProperties.getLinks().getDocumentation().getSystemConfigurationView());
|
||||
final Link linkToSystemConfigHelp = SPUIComponentProvider.getHelpLink(i18n,
|
||||
uiProperties.getLinks().getDocumentation().getSystemConfigurationView());
|
||||
hlayout.addComponent(linkToSystemConfigHelp);
|
||||
|
||||
return hlayout;
|
||||
|
||||
@@ -143,7 +143,7 @@ public class DurationField extends DateField {
|
||||
* Sets the duration value
|
||||
*
|
||||
* @param duration
|
||||
* duration, only values <= 23:59:59 are excepted
|
||||
* duration, only values less then 23:59:59 are excepted
|
||||
*/
|
||||
public void setDuration(@NotNull final Duration duration) {
|
||||
if (duration.compareTo(MAXIMUM_DURATION) > 0) {
|
||||
|
||||
@@ -134,7 +134,7 @@ public final class SPUILabelDefinitions {
|
||||
*/
|
||||
public static final String AUTO_ASSIGN_DISTRIBUTION_SET = "autoAssignDistributionSet";
|
||||
/**
|
||||
* ASSIGNED DISTRIBUTION Name & Version.
|
||||
* ASSIGNED DISTRIBUTION Name and Version.
|
||||
*/
|
||||
public static final String ASSIGNED_DISTRIBUTION_NAME_VER = "assignedDistNameVersion";
|
||||
|
||||
@@ -144,7 +144,7 @@ public final class SPUILabelDefinitions {
|
||||
public static final String INSTALLED_DISTRIBUTION_ID = "installedDistributionSet.id";
|
||||
|
||||
/**
|
||||
* INSTALLED DISTRIBUTION Name & Version.
|
||||
* INSTALLED DISTRIBUTION Name and Version.
|
||||
*/
|
||||
public static final String INSTALLED_DISTRIBUTION_NAME_VER = "installedDistNameVersion";
|
||||
|
||||
|
||||
24
pom.xml
24
pom.xml
@@ -162,7 +162,7 @@
|
||||
<cron-utils.version>5.0.5</cron-utils.version>
|
||||
<jsoup.version>1.8.3</jsoup.version>
|
||||
<allure.version>2.7.0</allure.version>
|
||||
<eclipselink.version>2.7.3</eclipselink.version>
|
||||
<eclipselink.version>2.7.4</eclipselink.version>
|
||||
<gwtmockito.version>1.1.8</gwtmockito.version>
|
||||
<pl.pragmatists.version>1.0.2</pl.pragmatists.version>
|
||||
<guava.version>25.0-jre</guava.version>
|
||||
@@ -302,6 +302,14 @@
|
||||
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<configuration>
|
||||
<doclint>syntax</doclint>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>com.mycila</groupId>
|
||||
<artifactId>license-maven-plugin</artifactId>
|
||||
@@ -490,11 +498,15 @@
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<!-- Use the Nexus Staging plugin as a full replacement for the standard Maven Deploy plugin. See https://github.com/sonatype/nexus-maven-plugins/tree/master/staging/maven-plugin
|
||||
why this makes sense :-) We can control whether we want to deploy to the Eclipse repo or Maven Central by a combination of the version being a SNAPSHOT
|
||||
or RELEASE version and property skipNexusStaging=true/false. In any case we can take advantage of the plugin's "deferred deploy" feature which makes sure that
|
||||
all artifacts of a multi-module project are deployed as a whole at the end of the build process instead of deploying each module's artifacts individually
|
||||
as part of building the module. -->
|
||||
<!-- Use the Nexus Staging plugin as a full replacement
|
||||
for the standard Maven Deploy plugin. See https://github.com/sonatype/nexus-maven-plugins/tree/master/staging/maven-plugin
|
||||
why this makes sense :-) We can control whether we want to deploy to the
|
||||
Eclipse repo or Maven Central by a combination of the version being a SNAPSHOT
|
||||
or RELEASE version and property skipNexusStaging=true/false. In any case
|
||||
we can take advantage of the plugin's "deferred deploy" feature which makes
|
||||
sure that all artifacts of a multi-module project are deployed as a whole
|
||||
at the end of the build process instead of deploying each module's artifacts
|
||||
individually as part of building the module. -->
|
||||
<groupId>org.sonatype.plugins</groupId>
|
||||
<artifactId>nexus-staging-maven-plugin</artifactId>
|
||||
<version>1.6.7</version>
|
||||
|
||||
Reference in New Issue
Block a user