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