Migration of Action History to vaadin grid (#420)

* Migration of Action History to vaadin Grid
Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>
This commit is contained in:
Marcel Mager
2017-03-24 14:03:39 +01:00
committed by Kai Zimmermann
parent 081c3cccbf
commit c8db41ff85
65 changed files with 4713 additions and 1585 deletions

View File

@@ -78,6 +78,17 @@ public interface ActionRepository extends BaseEntityRepository<JpaAction, Long>,
*/
Slice<Action> findByTargetControllerId(Pageable pageable, String controllerId);
/**
* Retrieves all {@link Action}s which are referring the given targetId
*
* @param pageable
* page parameters
* @param targetId
* the target to find assigned actions for
* @return the found {@link Action}s
*/
Page<Action> findByTargetId(Pageable pageable, Long targetId);
/**
* Retrieves all {@link Action}s which are active and referring to the given
* {@link Target} order by ID ascending.
@@ -93,14 +104,14 @@ public interface ActionRepository extends BaseEntityRepository<JpaAction, Long>,
/**
* Retrieves the oldest {@link Action} that is active and referring to the
* given {@link Target}.
*
*
* @param sort
* order
* @param controllerId
* the target to find assigned actions
* @param active
* the action active flag
*
*
* @return the found {@link Action}
*/
@EntityGraph(value = "Action.ds", type = EntityGraphType.LOAD)
@@ -209,6 +220,15 @@ public interface ActionRepository extends BaseEntityRepository<JpaAction, Long>,
*/
Long countByTargetControllerId(String controllerId);
/**
* Counts all {@link Action}s referring to the given targetId.
*
* @param targetId
* the target to count the {@link Action}s
* @return the count of actions referring to the given target
*/
Long countByTargetId(Long targetId);
/**
* Counts all {@link Action}s referring to the given DistributionSet.
*

View File

@@ -40,8 +40,8 @@ public interface ActionStatusRepository
/**
* Retrieves all {@link ActionStatus} entries from repository of given
* {@link Action}.
*
* ActionId.
*
* @param pageReq
* parameters
* @param actionId
@@ -64,5 +64,4 @@ public interface ActionStatusRepository
*/
@EntityGraph(value = "ActionStatus.withMessages", type = EntityGraphType.LOAD)
Page<ActionStatus> getByActionId(Pageable pageReq, Long actionId);
}

View File

@@ -43,6 +43,7 @@ import org.eclipse.hawkbit.repository.jpa.configuration.Constants;
import org.eclipse.hawkbit.repository.jpa.executor.AfterTransactionCommitExecutor;
import org.eclipse.hawkbit.repository.jpa.model.JpaAction;
import org.eclipse.hawkbit.repository.jpa.model.JpaActionStatus;
import org.eclipse.hawkbit.repository.jpa.model.JpaActionStatus_;
import org.eclipse.hawkbit.repository.jpa.model.JpaActionWithStatusCount;
import org.eclipse.hawkbit.repository.jpa.model.JpaAction_;
import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet;
@@ -656,6 +657,29 @@ public class JpaDeploymentManagement implements DeploymentManagement {
return actionStatusRepository.getByActionId(pageReq, actionId);
}
@Override
public Page<String> findMessagesByActionStatusId(final Pageable pageable, final Long actionStatusId) {
final CriteriaBuilder cb = entityManager.getCriteriaBuilder();
final CriteriaQuery<Long> countMsgQuery = cb.createQuery(Long.class);
final Root<JpaActionStatus> countMsgQueryFrom = countMsgQuery.distinct(true).from(JpaActionStatus.class);
final ListJoin<JpaActionStatus, String> cJoin = countMsgQueryFrom.joinList("messages", JoinType.LEFT);
countMsgQuery.select(cb.count(cJoin))
.where(cb.equal(countMsgQueryFrom.get(JpaActionStatus_.id), actionStatusId));
final Long totalCount = entityManager.createQuery(countMsgQuery).getSingleResult();
final CriteriaQuery<String> msgQuery = cb.createQuery(String.class);
final Root<JpaActionStatus>as = msgQuery.from(JpaActionStatus.class);
final ListJoin<JpaActionStatus, String> join = as.joinList("messages", JoinType.LEFT);
final CriteriaQuery<String> selMsgQuery = msgQuery.select(join);
selMsgQuery.where(cb.equal(as.get(JpaActionStatus_.id), actionStatusId));
final List<String> result = entityManager.createQuery(selMsgQuery).setFirstResult(pageable.getOffset())
.setMaxResults(pageable.getPageSize()).getResultList().stream().collect(Collectors.toList());
return new PageImpl<>(result, pageable, totalCount);
}
@Override
public Page<ActionStatus> findActionStatusAll(final Pageable pageable) {
return convertAcSPage(actionStatusRepository.findAll(pageable), pageable);