Reapplied hawkBit code formatter.

It seems that from Luna to Mars Eclipse changed how the code formatter
handles lines breaks in certain cases. This is now the “Mars” variant.
This commit is contained in:
Kai Zimmermann
2016-01-27 10:12:11 +01:00
parent 7d2ccbd175
commit 2f0bf6629f
85 changed files with 1066 additions and 1109 deletions

View File

@@ -92,7 +92,7 @@ public class MongoConfiguration extends AbstractMongoConfiguration {
* *
* Based on MongoProperties#builder method. * Based on MongoProperties#builder method.
*/ */
private Builder createBuilderOutOfOptions(final MongoClientOptions options) { private static Builder createBuilderOutOfOptions(final MongoClientOptions options) {
final Builder builder = MongoClientOptions.builder(); final Builder builder = MongoClientOptions.builder();
if (options != null) { if (options != null) {
builder.alwaysUseMBeans(options.isAlwaysUseMBeans()); builder.alwaysUseMBeans(options.isAlwaysUseMBeans());
@@ -108,8 +108,8 @@ public class MongoConfiguration extends AbstractMongoConfiguration {
builder.socketFactory(options.getSocketFactory()); builder.socketFactory(options.getSocketFactory());
builder.socketKeepAlive(options.isSocketKeepAlive()); builder.socketKeepAlive(options.isSocketKeepAlive());
builder.socketTimeout(options.getSocketTimeout()); builder.socketTimeout(options.getSocketTimeout());
builder.threadsAllowedToBlockForConnectionMultiplier(options builder.threadsAllowedToBlockForConnectionMultiplier(
.getThreadsAllowedToBlockForConnectionMultiplier()); options.getThreadsAllowedToBlockForConnectionMultiplier());
builder.writeConcern(options.getWriteConcern()); builder.writeConcern(options.getWriteConcern());
} }
return builder; return builder;

View File

@@ -11,7 +11,6 @@ package org.eclipse.hawkbit.autoconfigure.scheduling;
import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -46,19 +45,15 @@ public class ExecutorAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public Executor asyncExecutor() { public Executor asyncExecutor() {
final BlockingQueue<Runnable> blockingQueue = new ArrayBlockingQueue<Runnable>( final BlockingQueue<Runnable> blockingQueue = new ArrayBlockingQueue<>(
asyncConfigurerProperties.getQueuesize()); asyncConfigurerProperties.getQueuesize());
final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor( final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(asyncConfigurerProperties.getCorethreads(),
asyncConfigurerProperties.getCorethreads(), asyncConfigurerProperties.getMaxthreads(), asyncConfigurerProperties.getMaxthreads(), asyncConfigurerProperties.getIdletimeout(),
asyncConfigurerProperties.getIdletimeout(), TimeUnit.MILLISECONDS, blockingQueue, TimeUnit.MILLISECONDS, blockingQueue,
new ThreadFactoryBuilder().setNameFormat("central-executor-pool-%d").build()); new ThreadFactoryBuilder().setNameFormat("central-executor-pool-%d").build());
threadPoolExecutor.setRejectedExecutionHandler(new RejectedExecutionHandler() { threadPoolExecutor.setRejectedExecutionHandler((r, executor) -> LOGGER.warn(
@Override "Reject runnable for centralExecutorService, reached limit of queue size {}",
public void rejectedExecution(final Runnable r, final java.util.concurrent.ThreadPoolExecutor executor) { executor.getQueue().size()));
LOGGER.warn("Reject runnable for centralExecutorService, reached limit of queue size {}", executor
.getQueue().size());
}
});
return new DelegatingSecurityContextExecutor(threadPoolExecutor); return new DelegatingSecurityContextExecutor(threadPoolExecutor);
} }

View File

@@ -159,35 +159,27 @@ public class SecurityManagedConfiguration implements EnvironmentAware {
} }
if (securityConfiguration.getAnonymousEnabled()) { if (securityConfiguration.getAnonymousEnabled()) {
LOG.info("******************\n** Anonymous controller security enabled, should only use for developing purposes **\n******************"); LOG.info(
"******************\n** Anonymous controller security enabled, should only use for developing purposes **\n******************");
final AnonymousAuthenticationFilter anoymousFilter = new AnonymousAuthenticationFilter( final AnonymousAuthenticationFilter anoymousFilter = new AnonymousAuthenticationFilter(
"controllerAnonymousFilter", "anonymous", Collections.singletonList(new SimpleGrantedAuthority( "controllerAnonymousFilter", "anonymous", Collections.singletonList(
SpringEvalExpressions.CONTROLLER_ROLE_ANONYMOUS))); new SimpleGrantedAuthority(SpringEvalExpressions.CONTROLLER_ROLE_ANONYMOUS)));
anoymousFilter.setAuthenticationDetailsSource(authenticationDetailsSource); anoymousFilter.setAuthenticationDetailsSource(authenticationDetailsSource);
httpSec.requestMatchers().antMatchers("/*/controller/v1/**", "/*/controller/artifacts/v1/**").and() httpSec.requestMatchers().antMatchers("/*/controller/v1/**", "/*/controller/artifacts/v1/**").and()
.securityContext().disable().anonymous().authenticationFilter(anoymousFilter); .securityContext().disable().anonymous().authenticationFilter(anoymousFilter);
} else { } else {
httpSec.addFilter(securityHeaderFilter) httpSec.addFilter(securityHeaderFilter).addFilter(securityTokenFilter)
.addFilter(securityTokenFilter) .addFilter(gatewaySecurityTokenFilter).antMatcher("/*/controller/**").anonymous().disable()
.addFilter(gatewaySecurityTokenFilter) .authorizeRequests().anyRequest().authenticated().and().exceptionHandling()
.antMatcher("/*/controller/**") .authenticationEntryPoint((request, response, authException) -> response
.anonymous() .setStatus(HttpStatus.UNAUTHORIZED.value()))
.disable() .and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.exceptionHandling()
.authenticationEntryPoint(
(request, response, authException) -> response.setStatus(HttpStatus.UNAUTHORIZED
.value())).and().sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS);
} }
} }
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
* @see * @see
* org.springframework.security.config.annotation.web.configuration. * org.springframework.security.config.annotation.web.configuration.
* WebSecurityConfigurerAdapter * WebSecurityConfigurerAdapter
@@ -196,8 +188,8 @@ public class SecurityManagedConfiguration implements EnvironmentAware {
*/ */
@Override @Override
protected void configure(final AuthenticationManagerBuilder auth) throws Exception { protected void configure(final AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(new PreAuthTokenSourceTrustAuthenticationProvider(securityConfiguration auth.authenticationProvider(
.getRpTrustedIPs())); new PreAuthTokenSourceTrustAuthenticationProvider(securityConfiguration.getRpTrustedIPs()));
} }
} }
@@ -212,10 +204,12 @@ public class SecurityManagedConfiguration implements EnvironmentAware {
public FilterRegistrationBean dosFilter() { public FilterRegistrationBean dosFilter() {
final FilterRegistrationBean filterRegBean = new FilterRegistrationBean(); final FilterRegistrationBean filterRegBean = new FilterRegistrationBean();
filterRegBean.setFilter(new DosFilter(environment filterRegBean
.getProperty("security.dos.filter.maxRead", Integer.class, 200), environment.getProperty( .setFilter(
"security.dos.filter.maxWrite", Integer.class, 50), environment new DosFilter(environment.getProperty("security.dos.filter.maxRead", Integer.class, 200),
.getProperty("security.dos.filter.whitelist"), environment.getProperty("security.clients.blacklist"), environment.getProperty("security.dos.filter.maxWrite", Integer.class, 50),
environment.getProperty("security.dos.filter.whitelist"), environment
.getProperty("security.clients.blacklist"),
environment.getProperty("security.rp.remote_ip_header", String.class, "X-Forwarded-For"))); environment.getProperty("security.rp.remote_ip_header", String.class, "X-Forwarded-For")));
filterRegBean.addUrlPatterns("/{tenant}/controller/v1/*", "/rest/*"); filterRegBean.addUrlPatterns("/{tenant}/controller/v1/*", "/rest/*");
return filterRegBean; return filterRegBean;
@@ -301,7 +295,8 @@ public class SecurityManagedConfiguration implements EnvironmentAware {
}, RequestHeaderAuthenticationFilter.class) }, RequestHeaderAuthenticationFilter.class)
.addFilterAfter( .addFilterAfter(
new AuthenticationSuccessTenantMetadataCreationFilter(tenantAware, systemManagement), new AuthenticationSuccessTenantMetadataCreationFilter(tenantAware, systemManagement),
RequestHeaderAuthenticationFilter.class).authorizeRequests().anyRequest().authenticated() RequestHeaderAuthenticationFilter.class)
.authorizeRequests().anyRequest().authenticated()
.antMatchers(RestConstants.BASE_SYSTEM_MAPPING + "/admin/**") .antMatchers(RestConstants.BASE_SYSTEM_MAPPING + "/admin/**")
.hasAnyAuthority(SpPermission.SYSTEM_ADMIN).antMatchers(RestConstants.BASE_SYSTEM_MAPPING + "/**") .hasAnyAuthority(SpPermission.SYSTEM_ADMIN).antMatchers(RestConstants.BASE_SYSTEM_MAPPING + "/**")
.hasAnyAuthority(SpPermission.SYSTEM_DIAG); .hasAnyAuthority(SpPermission.SYSTEM_DIAG);
@@ -310,12 +305,13 @@ public class SecurityManagedConfiguration implements EnvironmentAware {
/** /**
* {@link WebSecurityConfigurer} for external (management) access. * {@link WebSecurityConfigurer} for external (management) access.
* *
*/ */
@Configuration @Configuration
@Order(400) @Order(400)
@EnableVaadinSecurity @EnableVaadinSecurity
public static class UISecurityConfigurationAdapter extends WebSecurityConfigurerAdapter implements EnvironmentAware { public static class UISecurityConfigurationAdapter extends WebSecurityConfigurerAdapter
implements EnvironmentAware {
private static final String XFRAME_OPTION_DENY = "DENY"; private static final String XFRAME_OPTION_DENY = "DENY";
private static final String XFRAME_OPTION_SAMEORIGIN = "SAMEORIGIN"; private static final String XFRAME_OPTION_SAMEORIGIN = "SAMEORIGIN";
@@ -371,7 +367,7 @@ public class SecurityManagedConfiguration implements EnvironmentAware {
* Listener to redirect to login page after session timeout. Close the * Listener to redirect to login page after session timeout. Close the
* vaadin session, because it's is not possible to redirect in * vaadin session, because it's is not possible to redirect in
* atmospehere. * atmospehere.
* *
* @return the servlet listener. * @return the servlet listener.
*/ */
@Bean @Bean
@@ -388,10 +384,9 @@ public class SecurityManagedConfiguration implements EnvironmentAware {
if (confXframeOption.equals(XFAME_OPTION_ALLOW_FROM) && confAllowFromUri == null) { if (confXframeOption.equals(XFAME_OPTION_ALLOW_FROM) && confAllowFromUri == null) {
// if allow-from option is specified but no allowFromUri throw // if allow-from option is specified but no allowFromUri throw
// exception // exception
throw new IllegalStateException( throw new IllegalStateException("hawkbit.server.security.xframe.option has been specified as ALLOW-FROM"
"hawkbit.server.security.xframe.option has been specified as ALLOW-FROM" + " but no hawkbit.server.security.xframe.option.allowfrom has been set, "
+ " but no hawkbit.server.security.xframe.option.allowfrom has been set, " + "please ensure to set allow from URIs");
+ "please ensure to set allow from URIs");
} }
// workaround regex: we need to exclude the URL /UI/HEARTBEAT here // workaround regex: we need to exclude the URL /UI/HEARTBEAT here
@@ -400,23 +395,22 @@ public class SecurityManagedConfiguration implements EnvironmentAware {
// vaadin-forum: // vaadin-forum:
// https://vaadin.com/forum#!/thread/3200565. // https://vaadin.com/forum#!/thread/3200565.
HttpSecurity httpSec = http.regexMatcher("(?!.*HEARTBEAT)^.*\\/UI.*$") HttpSecurity httpSec = http.regexMatcher("(?!.*HEARTBEAT)^.*\\/UI.*$")
// disable as CSRF is handled by Vaadin // disable as CSRF is handled by Vaadin
.csrf().disable(); .csrf().disable();
if (springSecurityProperties.isRequireSsl()) { if (springSecurityProperties.isRequireSsl()) {
httpSec = httpSec.requiresChannel().anyRequest().requiresSecure().and(); httpSec = httpSec.requiresChannel().anyRequest().requiresSecure().and();
} else { } else {
LOG.info("\"******************\\n** Requires HTTPS Security has been disabled for UI, should only use for developing purposes **\\n******************\""); LOG.info(
"\"******************\\n** Requires HTTPS Security has been disabled for UI, should only use for developing purposes **\\n******************\"");
} }
// for UI integrator we allow frame integration on same origin // for UI integrator we allow frame integration on same origin
httpSec.headers() httpSec.headers()
.addHeaderWriter( .addHeaderWriter(confXframeOption.equals(XFAME_OPTION_ALLOW_FROM)
confXframeOption.equals(XFAME_OPTION_ALLOW_FROM) ? new XFrameOptionsHeaderWriter( ? new XFrameOptionsHeaderWriter(new StaticAllowFromStrategy(new URI(confAllowFromUri)))
new StaticAllowFromStrategy(new URI(confAllowFromUri))) : new XFrameOptionsHeaderWriter(xframeOptionFromStr(confXframeOption)))
: new XFrameOptionsHeaderWriter(xframeOptionFromStr(confXframeOption))) .contentTypeOptions().xssProtection().httpStrictTransportSecurity().and()
.contentTypeOptions().xssProtection().httpStrictTransportSecurity()
.and()
// UI // UI
.authorizeRequests().antMatchers("/UI/login/**").permitAll().antMatchers("/UI/UIDL/**").permitAll() .authorizeRequests().antMatchers("/UI/login/**").permitAll().antMatchers("/UI/UIDL/**").permitAll()
.anyRequest().authenticated().and() .anyRequest().authenticated().and()
@@ -437,7 +431,7 @@ public class SecurityManagedConfiguration implements EnvironmentAware {
* string does not match an option then * string does not match an option then
* {@link XFrameOptionsMode#SAMEORIGIN} is returned * {@link XFrameOptionsMode#SAMEORIGIN} is returned
*/ */
private XFrameOptionsMode xframeOptionFromStr(@NotNull final String xframeOption) { private static XFrameOptionsMode xframeOptionFromStr(@NotNull final String xframeOption) {
switch (xframeOption) { switch (xframeOption) {
case XFRAME_OPTION_DENY: case XFRAME_OPTION_DENY:
return XFrameOptionsMode.DENY; return XFrameOptionsMode.DENY;
@@ -450,8 +444,8 @@ public class SecurityManagedConfiguration implements EnvironmentAware {
@Override @Override
public void configure(final WebSecurity webSecurity) throws Exception { public void configure(final WebSecurity webSecurity) throws Exception {
webSecurity.ignoring() webSecurity.ignoring().antMatchers("/documentation/**", "/VAADIN/**", "/*.*", "/v2/api-docs/**",
.antMatchers("/documentation/**", "/VAADIN/**", "/*.*", "/v2/api-docs/**", "/docs/**"); "/docs/**");
} }
} }
@@ -482,15 +476,15 @@ public class SecurityManagedConfiguration implements EnvironmentAware {
http.csrf().disable(); http.csrf().disable();
http.anonymous().disable(); http.anonymous().disable();
http.regexMatcher(HttpDownloadAuthenticationFilter.REQUEST_ID_REGEX_PATTERN).addFilterBefore( http.regexMatcher(HttpDownloadAuthenticationFilter.REQUEST_ID_REGEX_PATTERN)
downloadIdAuthenticationFilter, FilterSecurityInterceptor.class); .addFilterBefore(downloadIdAuthenticationFilter, FilterSecurityInterceptor.class);
http.authorizeRequests().anyRequest().authenticated(); http.authorizeRequests().anyRequest().authenticated();
} }
@Override @Override
protected void configure(final AuthenticationManagerBuilder auth) throws Exception { protected void configure(final AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(new PreAuthTokenSourceTrustAuthenticationProvider(securityConfiguration auth.authenticationProvider(
.getRpTrustedIPs())); new PreAuthTokenSourceTrustAuthenticationProvider(securityConfiguration.getRpTrustedIPs()));
} }
} }
@@ -510,7 +504,7 @@ class TenantMetadataSavedRequestAwareVaadinAuthenticationSuccessHandler extends
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
* @see org.vaadin.spring.security.web.authentication. * @see org.vaadin.spring.security.web.authentication.
* SavedRequestAwareVaadinAuthenticationSuccessHandler * SavedRequestAwareVaadinAuthenticationSuccessHandler
* #onAuthenticationSuccess(org.springframework.security.core. * #onAuthenticationSuccess(org.springframework.security.core.
@@ -519,10 +513,10 @@ class TenantMetadataSavedRequestAwareVaadinAuthenticationSuccessHandler extends
@Override @Override
public void onAuthenticationSuccess(final Authentication authentication) throws Exception { public void onAuthenticationSuccess(final Authentication authentication) throws Exception {
if (authentication.getClass().equals(TenantUserPasswordAuthenticationToken.class)) { if (authentication.getClass().equals(TenantUserPasswordAuthenticationToken.class)) {
systemManagement.getTenantMetadata(((TenantUserPasswordAuthenticationToken) authentication).getTenant() systemManagement
.toString()); .getTenantMetadata(((TenantUserPasswordAuthenticationToken) authentication).getTenant().toString());
} else if (authentication.getClass().equals(UsernamePasswordAuthenticationToken.class)) { } else if (authentication.getClass().equals(UsernamePasswordAuthenticationToken.class)) {
// TODO: MECS-1078 vaadin4spring-ext-security does not give us the // TODO: vaadin4spring-ext-security does not give us the
// fullyAuthenticatedToken // fullyAuthenticatedToken
// in the GenericVaadinSecurity class. Only the token which has been // in the GenericVaadinSecurity class. Only the token which has been
// created in the // created in the

View File

@@ -12,7 +12,7 @@ package org.eclipse.hawkbit.exception;
* *
* *
* *
* Generic Custom Exception to wrap the Runtime and checked exception * Generic Custom Exception to wrap the Runtime and checked exception
* *
*/ */

View File

@@ -36,7 +36,7 @@ public enum SoftwareModuleFields implements FieldNameProvider {
/** /**
* The id field. * The id field.
*/ */
ID("id"), ID("id"),
/** /**
* The metadata. * The metadata.
*/ */

View File

@@ -155,8 +155,8 @@ public class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTestWit
CONTROLLER_ID, 1l, IpUtil.createAmqpUri("mytest")); CONTROLLER_ID, 1l, IpUtil.createAmqpUri("mytest"));
amqpMessageDispatcherService amqpMessageDispatcherService
.targetCancelAssignmentToDistributionSet(cancelTargetAssignmentDistributionSetEvent); .targetCancelAssignmentToDistributionSet(cancelTargetAssignmentDistributionSetEvent);
final Message sendMessage = createArgumentCapture(cancelTargetAssignmentDistributionSetEvent.getTargetAdress() final Message sendMessage = createArgumentCapture(
.getHost()); cancelTargetAssignmentDistributionSetEvent.getTargetAdress().getHost());
assertCancelMessage(sendMessage); assertCancelMessage(sendMessage);
} }
@@ -200,8 +200,8 @@ public class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTestWit
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private <T> T convertMessage(final Message message, final Class<T> clazz) { private <T> T convertMessage(final Message message, final Class<T> clazz) {
message.getMessageProperties().getHeaders() message.getMessageProperties().getHeaders().put(AbstractJavaTypeMapper.DEFAULT_CLASSID_FIELD_NAME,
.put(AbstractJavaTypeMapper.DEFAULT_CLASSID_FIELD_NAME, clazz.getTypeName()); clazz.getTypeName());
return (T) rabbitTemplate.getMessageConverter().fromMessage(message); return (T) rabbitTemplate.getMessageConverter().fromMessage(message);
} }

View File

@@ -22,6 +22,5 @@ import com.fasterxml.jackson.annotation.JsonInclude.Include;
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public enum ActionStatus { public enum ActionStatus {
DOWNLOAD, RETRIEVED, RUNNING, FINISHED, ERROR, WARNING, CANCELED, CANCEL_REJECTED; DOWNLOAD, RETRIEVED, RUNNING, FINISHED, ERROR, WARNING, CANCELED, CANCEL_REJECTED;
} }

View File

@@ -96,8 +96,8 @@ public class ExceptionMappingAspectHandler implements Ordered {
if (translatedAccessException == null && ex instanceof TransactionSystemException) { if (translatedAccessException == null && ex instanceof TransactionSystemException) {
final TransactionSystemException systemException = (TransactionSystemException) ex; final TransactionSystemException systemException = (TransactionSystemException) ex;
translatedAccessException = translateEclipseLinkExceptionIfPossible((Exception) systemException translatedAccessException = translateEclipseLinkExceptionIfPossible(
.getOriginalException()); (Exception) systemException.getOriginalException());
} }
if (translatedAccessException == null) { if (translatedAccessException == null) {

View File

@@ -23,8 +23,8 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
* successful spring transaction commit.The class is thread safe. * successful spring transaction commit.The class is thread safe.
*/ */
@Service @Service
public class AfterTransactionCommitDefaultServiceExecutor extends TransactionSynchronizationAdapter implements public class AfterTransactionCommitDefaultServiceExecutor extends TransactionSynchronizationAdapter
AfterTransactionCommitExecutor { implements AfterTransactionCommitExecutor {
private static final Logger LOGGER = LoggerFactory.getLogger(AfterTransactionCommitDefaultServiceExecutor.class); private static final Logger LOGGER = LoggerFactory.getLogger(AfterTransactionCommitDefaultServiceExecutor.class);
private static final ThreadLocal<List<Runnable>> THREAD_LOCAL_RUNNABLES = new ThreadLocal<>(); private static final ThreadLocal<List<Runnable>> THREAD_LOCAL_RUNNABLES = new ThreadLocal<>();

View File

@@ -198,10 +198,8 @@ public class DeploymentManagement {
@CacheEvict(value = { "distributionUsageAssigned" }, allEntries = true) @CacheEvict(value = { "distributionUsageAssigned" }, allEntries = true)
public DistributionSetAssignmentResult assignDistributionSet(@NotNull final Long dsID, final ActionType actionType, public DistributionSetAssignmentResult assignDistributionSet(@NotNull final Long dsID, final ActionType actionType,
final long forcedTimestamp, @NotEmpty final String... targetIDs) { final long forcedTimestamp, @NotEmpty final String... targetIDs) {
return assignDistributionSet( return assignDistributionSet(dsID, Arrays.stream(targetIDs)
dsID, .map(t -> new TargetWithActionType(t, actionType, forcedTimestamp)).collect(Collectors.toList()));
Arrays.stream(targetIDs).map(t -> new TargetWithActionType(t, actionType, forcedTimestamp))
.collect(Collectors.toList()));
} }
/** /**
@@ -226,8 +224,8 @@ public class DeploymentManagement {
final List<TargetWithActionType> targets) { final List<TargetWithActionType> targets) {
final DistributionSet set = distributoinSetRepository.findOne(dsID); final DistributionSet set = distributoinSetRepository.findOne(dsID);
if (set == null) { if (set == null) {
throw new EntityNotFoundException(String.format("no %s with id %d found", throw new EntityNotFoundException(
DistributionSet.class.getSimpleName(), dsID)); String.format("no %s with id %d found", DistributionSet.class.getSimpleName(), dsID));
} }
return assignDistributionSetToTargets(set, targets); return assignDistributionSetToTargets(set, targets);
@@ -251,8 +249,8 @@ public class DeploymentManagement {
final List<TargetWithActionType> targetsWithActionType) { final List<TargetWithActionType> targetsWithActionType) {
if (!set.isComplete()) { if (!set.isComplete()) {
throw new IncompleteDistributionSetException("Distribution set of type " + set.getType().getKey() throw new IncompleteDistributionSetException(
+ " is incomplete: " + set.getId()); "Distribution set of type " + set.getType().getKey() + " is incomplete: " + set.getId());
} }
final List<String> controllerIDs = targetsWithActionType.stream().map(TargetWithActionType::getTargetId) final List<String> controllerIDs = targetsWithActionType.stream().map(TargetWithActionType::getTargetId)
@@ -260,8 +258,8 @@ public class DeploymentManagement {
LOG.debug("assignDistribution({}) to {} targets", set, controllerIDs.size()); LOG.debug("assignDistribution({}) to {} targets", set, controllerIDs.size());
final Map<String, TargetWithActionType> targetsWithActionMap = targetsWithActionType.stream().collect( final Map<String, TargetWithActionType> targetsWithActionMap = targetsWithActionType.stream()
Collectors.toMap(TargetWithActionType::getTargetId, Function.identity())); .collect(Collectors.toMap(TargetWithActionType::getTargetId, Function.identity()));
// split tIDs length into max entries in-statement because many database // split tIDs length into max entries in-statement because many database
// have constraint of // have constraint of
@@ -271,12 +269,10 @@ public class DeploymentManagement {
// we take the target only into account if the requested operation is no // we take the target only into account if the requested operation is no
// duplicate of a // duplicate of a
// previous one // previous one
final List<Target> targets = Lists final List<Target> targets = Lists.partition(controllerIDs, Constants.MAX_ENTRIES_IN_STATEMENT).stream()
.partition(controllerIDs, Constants.MAX_ENTRIES_IN_STATEMENT) .map(ids -> targetRepository
.stream() .findAll(TargetSpecifications.hasControllerIdAndAssignedDistributionSetIdNot(ids, set.getId())))
.map(ids -> targetRepository.findAll(TargetSpecifications .flatMap(t -> t.stream()).collect(Collectors.toList());
.hasControllerIdAndAssignedDistributionSetIdNot(ids, set.getId()))).flatMap(t -> t.stream())
.collect(Collectors.toList());
if (targets.isEmpty()) { if (targets.isEmpty()) {
// detaching as it is not necessary to persist the set itself // detaching as it is not necessary to persist the set itself
@@ -339,8 +335,8 @@ public class DeploymentManagement {
}); });
// select updated targets in order to return them // select updated targets in order to return them
final DistributionSetAssignmentResult result = new DistributionSetAssignmentResult(targets.stream() final DistributionSetAssignmentResult result = new DistributionSetAssignmentResult(
.map(target -> target.getControllerId()).collect(Collectors.toList()), targets.size(), targets.stream().map(target -> target.getControllerId()).collect(Collectors.toList()), targets.size(),
controllerIDs.size() - targets.size(), Lists.newArrayList(targetIdsToActions.values()), controllerIDs.size() - targets.size(), Lists.newArrayList(targetIdsToActions.values()),
targetManagement); targetManagement);
@@ -353,11 +349,9 @@ public class DeploymentManagement {
// send distribution set assignment event // send distribution set assignment event
targets.stream() targets.stream().filter(t -> !!!targetIdsCancellList.contains(t.getId()))
.filter(t -> !!!targetIdsCancellList.contains(t.getId())) .forEach(t -> assignDistributionSetEvent(t, targetIdsToActions.get(t.getControllerId()).getId(),
.forEach( softwareModules));
t -> assignDistributionSetEvent(t, targetIdsToActions.get(t.getControllerId()).getId(),
softwareModules));
return result; return result;
} }
@@ -403,13 +397,13 @@ public class DeploymentManagement {
activeActions.forEach(action -> { activeActions.forEach(action -> {
action.setStatus(Status.CANCELING); action.setStatus(Status.CANCELING);
// document that the status has been retrieved // document that the status has been retrieved
actionStatusRepository.save(new ActionStatus(action, Status.CANCELING, System.currentTimeMillis(), actionStatusRepository.save(new ActionStatus(action, Status.CANCELING, System.currentTimeMillis(),
"manual cancelation requested")); "manual cancelation requested"));
cancelAssignDistributionSetEvent(action.getTarget(), action.getId()); cancelAssignDistributionSetEvent(action.getTarget(), action.getId());
cancelledTargetIds.add(action.getTarget().getId()); cancelledTargetIds.add(action.getTarget().getId());
}); });
actionRepository.save(activeActions); actionRepository.save(activeActions);
return cancelledTargetIds; return cancelledTargetIds;
@@ -417,9 +411,8 @@ public class DeploymentManagement {
private DistributionSetAssignmentResult assignDistributionSetByTargetId(@NotNull final DistributionSet set, private DistributionSetAssignmentResult assignDistributionSetByTargetId(@NotNull final DistributionSet set,
@NotEmpty final List<String> tIDs, final ActionType actionType, final long forcedTime) { @NotEmpty final List<String> tIDs, final ActionType actionType, final long forcedTime) {
return assignDistributionSetToTargets(set, return assignDistributionSetToTargets(set, tIDs.stream()
tIDs.stream().map(t -> new TargetWithActionType(t, actionType, forcedTime)) .map(t -> new TargetWithActionType(t, actionType, forcedTime)).collect(Collectors.toList()));
.collect(Collectors.toList()));
} }
/** /**
@@ -487,8 +480,8 @@ public class DeploymentManagement {
return saveAction; return saveAction;
} else { } else {
throw new CancelActionNotAllowedException("Action [id: " + action.getId() throw new CancelActionNotAllowedException(
+ "] is not active and cannot be canceled"); "Action [id: " + action.getId() + "] is not active and cannot be canceled");
} }
} }
@@ -529,13 +522,13 @@ public class DeploymentManagement {
final Action mergedAction = entityManager.merge(action); final Action mergedAction = entityManager.merge(action);
if (!mergedAction.isCancelingOrCanceled()) { if (!mergedAction.isCancelingOrCanceled()) {
throw new ForceQuitActionNotAllowedException("Action [id: " + action.getId() throw new ForceQuitActionNotAllowedException(
+ "] is not canceled yet and cannot be force quit"); "Action [id: " + action.getId() + "] is not canceled yet and cannot be force quit");
} }
if (!mergedAction.isActive()) { if (!mergedAction.isActive()) {
throw new ForceQuitActionNotAllowedException("Action [id: " + action.getId() throw new ForceQuitActionNotAllowedException(
+ "] is not active and cannot be force quit"); "Action [id: " + action.getId() + "] is not active and cannot be force quit");
} }
LOG.warn("action ({}) was still activ and has been force quite.", action); LOG.warn("action ({}) was still activ and has been force quite.", action);
@@ -650,7 +643,8 @@ public class DeploymentManagement {
return actionRepository.findAll(new Specification<Action>() { return actionRepository.findAll(new Specification<Action>() {
@Override @Override
public Predicate toPredicate(final Root<Action> root, final CriteriaQuery<?> query, final CriteriaBuilder cb) { public Predicate toPredicate(final Root<Action> root, final CriteriaQuery<?> query,
final CriteriaBuilder cb) {
return cb.and(specifiction.toPredicate(root, query, cb), cb.equal(root.get(Action_.target), target)); return cb.and(specifiction.toPredicate(root, query, cb), cb.equal(root.get(Action_.target), target));
} }
}, pageable); }, pageable);
@@ -752,7 +746,8 @@ public class DeploymentManagement {
public Long countActionsByTarget(@NotNull final Specification<Action> spec, @NotNull final Target target) { public Long countActionsByTarget(@NotNull final Specification<Action> spec, @NotNull final Target target) {
return actionRepository.count(new Specification<Action>() { return actionRepository.count(new Specification<Action>() {
@Override @Override
public Predicate toPredicate(final Root<Action> root, final CriteriaQuery<?> query, final CriteriaBuilder cb) { public Predicate toPredicate(final Root<Action> root, final CriteriaQuery<?> query,
final CriteriaBuilder cb) {
return cb.and(spec.toPredicate(root, query, cb), cb.equal(root.get(Action_.target), target)); return cb.and(spec.toPredicate(root, query, cb), cb.equal(root.get(Action_.target), target));
} }
}); });
@@ -818,8 +813,8 @@ public class DeploymentManagement {
action.setStatus(Status.CANCELED); action.setStatus(Status.CANCELED);
final Target target = action.getTarget(); final Target target = action.getTarget();
final List<Action> nextActiveActions = actionRepository.findByTargetAndActiveOrderByIdAsc(target, true) final List<Action> nextActiveActions = actionRepository.findByTargetAndActiveOrderByIdAsc(target, true).stream()
.stream().filter(a -> !a.getId().equals(action.getId())).collect(Collectors.toList()); .filter(a -> !a.getId().equals(action.getId())).collect(Collectors.toList());
if (nextActiveActions.isEmpty()) { if (nextActiveActions.isEmpty()) {
target.setAssignedDistributionSet(target.getTargetInfo().getInstalledDistributionSet()); target.setAssignedDistributionSet(target.getTargetInfo().getInstalledDistributionSet());

View File

@@ -219,7 +219,8 @@ public class DistributionSetManagement {
* @return the found {@link DistributionSet}s * @return the found {@link DistributionSet}s
*/ */
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY)
public List<DistributionSet> findDistributionSetListWithDetails(@NotEmpty final Collection<Long> distributionIdSet) { public List<DistributionSet> findDistributionSetListWithDetails(
@NotEmpty final Collection<Long> distributionIdSet) {
return distributionSetRepository.findAll(DistributionSetSpecification.byIds(distributionIdSet)); return distributionSetRepository.findAll(DistributionSetSpecification.byIds(distributionIdSet));
} }
@@ -397,7 +398,8 @@ public class DistributionSetManagement {
@Modifying @Modifying
@Transactional @Transactional
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY)
public DistributionSet unassignSoftwareModule(@NotNull final DistributionSet ds, final SoftwareModule softwareModule) { public DistributionSet unassignSoftwareModule(@NotNull final DistributionSet ds,
final SoftwareModule softwareModule) {
final Set<SoftwareModule> softwareModules = new HashSet<SoftwareModule>(); final Set<SoftwareModule> softwareModules = new HashSet<SoftwareModule>();
softwareModules.add(softwareModule); softwareModules.add(softwareModule);
ds.removeModule(softwareModule); ds.removeModule(softwareModule);
@@ -429,9 +431,9 @@ public class DistributionSetManagement {
// throw exception if user tries to update a DS type that is already in // throw exception if user tries to update a DS type that is already in
// use // use
if (!persisted.areModuleEntriesIdentical(dsType) && distributionSetRepository.countByType(persisted) > 0) { if (!persisted.areModuleEntriesIdentical(dsType) && distributionSetRepository.countByType(persisted) > 0) {
throw new EntityReadOnlyException(String.format( throw new EntityReadOnlyException(
"distribution set type %s set is already assigned to targets and cannot be changed", String.format("distribution set type %s set is already assigned to targets and cannot be changed",
dsType.getName())); dsType.getName()));
} }
return distributionSetTypeRepository.save(dsType); return distributionSetTypeRepository.save(dsType);
@@ -597,14 +599,16 @@ public class DistributionSetManagement {
final DistributionSetFilter filterWithInstalledTargets = distributionSetFilterBuilder final DistributionSetFilter filterWithInstalledTargets = distributionSetFilterBuilder
.setInstalledTargetId(assignedOrInstalled).setAssignedTargetId(null).build(); .setInstalledTargetId(assignedOrInstalled).setAssignedTargetId(null).build();
final DistributionSet installedDS = findDistributionSetsByFiltersAndInstalledOrAssignedTarget(filterWithInstalledTargets); final DistributionSet installedDS = findDistributionSetsByFiltersAndInstalledOrAssignedTarget(
filterWithInstalledTargets);
final DistributionSetFilter filterWithAssignedTargets = distributionSetFilterBuilder.setInstalledTargetId(null) final DistributionSetFilter filterWithAssignedTargets = distributionSetFilterBuilder.setInstalledTargetId(null)
.setAssignedTargetId(assignedOrInstalled).build(); .setAssignedTargetId(assignedOrInstalled).build();
final DistributionSet assignedDS = findDistributionSetsByFiltersAndInstalledOrAssignedTarget(filterWithAssignedTargets); final DistributionSet assignedDS = findDistributionSetsByFiltersAndInstalledOrAssignedTarget(
filterWithAssignedTargets);
final DistributionSetFilter dsFilterWithNoTargetLinked = distributionSetFilterBuilder final DistributionSetFilter dsFilterWithNoTargetLinked = distributionSetFilterBuilder.setInstalledTargetId(null)
.setInstalledTargetId(null).setAssignedTargetId(null).build(); .setAssignedTargetId(null).build();
// first fine the distribution sets filtered by the given filter // first fine the distribution sets filtered by the given filter
// parameters // parameters
final Page<DistributionSet> findDistributionSetsByFilters = findDistributionSetsByFilters(pageable, final Page<DistributionSet> findDistributionSetsByFilters = findDistributionSetsByFilters(pageable,
@@ -654,8 +658,8 @@ public class DistributionSetManagement {
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY)
public DistributionSet findDistributionSetByNameAndVersion(@NotEmpty final String distributionName, public DistributionSet findDistributionSetByNameAndVersion(@NotEmpty final String distributionName,
@NotEmpty final String version) { @NotEmpty final String version) {
final Specification<DistributionSet> spec = DistributionSetSpecification.equalsNameAndVersionIgnoreCase( final Specification<DistributionSet> spec = DistributionSetSpecification
distributionName, version); .equalsNameAndVersionIgnoreCase(distributionName, version);
return distributionSetRepository.findOne(spec); return distributionSetRepository.findOne(spec);
} }
@@ -1009,17 +1013,17 @@ public class DistributionSetManagement {
final Set<SoftwareModule> softwareModules) { final Set<SoftwareModule> softwareModules) {
if (!new HashSet<SoftwareModule>(distributionSet.getModules()).equals(softwareModules) if (!new HashSet<SoftwareModule>(distributionSet.getModules()).equals(softwareModules)
&& actionRepository.countByDistributionSet(distributionSet) > 0) { && actionRepository.countByDistributionSet(distributionSet) > 0) {
throw new EntityLockedException(String.format( throw new EntityLockedException(
"distribution set %s:%s is already assigned to targets and cannot be changed", String.format("distribution set %s:%s is already assigned to targets and cannot be changed",
distributionSet.getName(), distributionSet.getVersion())); distributionSet.getName(), distributionSet.getVersion()));
} }
} }
private void checkDistributionSetSoftwareModulesIsAllowedToModify(final DistributionSet distributionSet) { private void checkDistributionSetSoftwareModulesIsAllowedToModify(final DistributionSet distributionSet) {
if (actionRepository.countByDistributionSet(distributionSet) > 0) { if (actionRepository.countByDistributionSet(distributionSet) > 0) {
throw new EntityLockedException(String.format( throw new EntityLockedException(
"distribution set %s:%s is already assigned to targets and cannot be changed", String.format("distribution set %s:%s is already assigned to targets and cannot be changed",
distributionSet.getName(), distributionSet.getVersion())); distributionSet.getName(), distributionSet.getVersion()));
} }
} }
@@ -1068,8 +1072,8 @@ public class DistributionSetManagement {
private void checkAndThrowAlreadyIfDistributionSetMetadataExists(final DsMetadataCompositeKey metadataId) { private void checkAndThrowAlreadyIfDistributionSetMetadataExists(final DsMetadataCompositeKey metadataId) {
if (distributionSetMetadataRepository.exists(metadataId)) { if (distributionSetMetadataRepository.exists(metadataId)) {
throw new EntityAlreadyExistsException("Metadata entry with key '" + metadataId.getKey() throw new EntityAlreadyExistsException(
+ "' already exists"); "Metadata entry with key '" + metadataId.getKey() + "' already exists");
} }
} }
@@ -1091,7 +1095,8 @@ public class DistributionSetManagement {
@Transactional @Transactional
@NotNull @NotNull
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET)
public List<DistributionSet> assignTag(@NotEmpty final Collection<Long> dsIds, @NotNull final DistributionSetTag tag) { public List<DistributionSet> assignTag(@NotEmpty final Collection<Long> dsIds,
@NotNull final DistributionSetTag tag) {
final List<DistributionSet> allDs = findDistributionSetListWithDetails(dsIds); final List<DistributionSet> allDs = findDistributionSetListWithDetails(dsIds);
allDs.forEach(ds -> ds.getTags().add(tag)); allDs.forEach(ds -> ds.getTags().add(tag));

View File

@@ -24,8 +24,8 @@ import org.springframework.transaction.annotation.Transactional;
* *
*/ */
@Transactional(readOnly = true) @Transactional(readOnly = true)
public interface DistributionSetTagRepository extends BaseEntityRepository<DistributionSetTag, Long>, public interface DistributionSetTagRepository
JpaSpecificationExecutor<DistributionSetTag> { extends BaseEntityRepository<DistributionSetTag, Long>, JpaSpecificationExecutor<DistributionSetTag> {
/** /**
* deletes the {@link DistributionSet} with the given name. * deletes the {@link DistributionSet} with the given name.
* *

View File

@@ -267,8 +267,8 @@ public class TagManagement {
final DistributionSetTag save = distributionSetTagRepository.save(distributionSetTag); final DistributionSetTag save = distributionSetTagRepository.save(distributionSetTag);
afterCommit.afterCommit(() -> eventBus.post(new DistributionSetTagCreatedBulkEvent(tenantAware afterCommit.afterCommit(
.getCurrentTenant(), save))); () -> eventBus.post(new DistributionSetTagCreatedBulkEvent(tenantAware.getCurrentTenant(), save)));
return save; return save;
} }
@@ -292,8 +292,8 @@ public class TagManagement {
} }
} }
final List<DistributionSetTag> save = distributionSetTagRepository.save(distributionSetTags); final List<DistributionSetTag> save = distributionSetTagRepository.save(distributionSetTags);
afterCommit.afterCommit(() -> eventBus.post(new DistributionSetTagCreatedBulkEvent(tenantAware afterCommit.afterCommit(
.getCurrentTenant(), save))); () -> eventBus.post(new DistributionSetTagCreatedBulkEvent(tenantAware.getCurrentTenant(), save)));
return save; return save;
} }

View File

@@ -19,27 +19,26 @@ import org.springframework.transaction.annotation.Transactional;
* *
*/ */
@Transactional(readOnly = true) @Transactional(readOnly = true)
public interface TargetFilterQueryRepository extends public interface TargetFilterQueryRepository
BaseEntityRepository<TargetFilterQuery, Long>, extends BaseEntityRepository<TargetFilterQuery, Long>, JpaSpecificationExecutor<TargetFilterQuery> {
JpaSpecificationExecutor<TargetFilterQuery> {
/** /**
* Find customer target filter by name * Find customer target filter by name
* *
* @param name * @param name
* @return custom target filter * @return custom target filter
*/ */
TargetFilterQuery findByName(final String name); TargetFilterQuery findByName(final String name);
/** /**
* Find list of all custom target filters. * Find list of all custom target filters.
*/ */
@Override @Override
Page<TargetFilterQuery> findAll(); Page<TargetFilterQuery> findAll();
@Override @Override
@Modifying @Modifying
@Transactional @Transactional
<S extends TargetFilterQuery> S save(S entity); <S extends TargetFilterQuery> S save(S entity);
} }

View File

@@ -350,9 +350,9 @@ public class TargetManagement {
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY_AND_READ_TARGET) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY_AND_READ_TARGET)
public Page<Target> findTargetByAssignedDistributionSet(@NotNull final Long distributionSetID, public Page<Target> findTargetByAssignedDistributionSet(@NotNull final Long distributionSetID,
final Specification<Target> spec, @NotNull final Pageable pageReq) { final Specification<Target> spec, @NotNull final Pageable pageReq) {
return targetRepository.findAll((Specification<Target>) (root, query, cb) -> cb.and(TargetSpecifications return targetRepository.findAll((Specification<Target>) (root, query, cb) -> cb.and(
.hasAssignedDistributionSet(distributionSetID).toPredicate(root, query, cb), spec.toPredicate(root, TargetSpecifications.hasAssignedDistributionSet(distributionSetID).toPredicate(root, query, cb),
query, cb)), pageReq); spec.toPredicate(root, query, cb)), pageReq);
} }
/** /**
@@ -389,9 +389,9 @@ public class TargetManagement {
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY_AND_READ_TARGET) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY_AND_READ_TARGET)
public Page<Target> findTargetByInstalledDistributionSet(final Long distributionSetId, public Page<Target> findTargetByInstalledDistributionSet(final Long distributionSetId,
final Specification<Target> spec, final Pageable pageable) { final Specification<Target> spec, final Pageable pageable) {
return targetRepository.findAll((Specification<Target>) (root, query, cb) -> cb.and(TargetSpecifications return targetRepository.findAll((Specification<Target>) (root, query, cb) -> cb.and(
.hasInstalledDistributionSet(distributionSetId).toPredicate(root, query, cb), spec.toPredicate(root, TargetSpecifications.hasInstalledDistributionSet(distributionSetId).toPredicate(root, query, cb),
query, cb)), pageable); spec.toPredicate(root, query, cb)), pageable);
} }
/** /**
@@ -486,8 +486,8 @@ public class TargetManagement {
specList.add(TargetSpecifications.hasTargetUpdateStatus(status, fetch)); specList.add(TargetSpecifications.hasTargetUpdateStatus(status, fetch));
} }
if (installedOrAssignedDistributionSetId != null) { if (installedOrAssignedDistributionSetId != null) {
specList.add(TargetSpecifications specList.add(
.hasInstalledOrAssignedDistributionSet(installedOrAssignedDistributionSetId)); TargetSpecifications.hasInstalledOrAssignedDistributionSet(installedOrAssignedDistributionSetId));
} }
if (!Strings.isNullOrEmpty(searchText)) { if (!Strings.isNullOrEmpty(searchText)) {
specList.add(TargetSpecifications.likeNameOrDescriptionOrIp(searchText)); specList.add(TargetSpecifications.likeNameOrDescriptionOrIp(searchText));
@@ -559,8 +559,8 @@ public class TargetManagement {
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET)
public TargetTagAssigmentResult toggleTagAssignment(@NotEmpty final List<Target> targets, public TargetTagAssigmentResult toggleTagAssignment(@NotEmpty final List<Target> targets,
@NotNull final TargetTag tag) { @NotNull final TargetTag tag) {
return toggleTagAssignment(targets.stream().map(target -> target.getControllerId()) return toggleTagAssignment(
.collect(Collectors.toList()), tag.getName()); targets.stream().map(target -> target.getControllerId()).collect(Collectors.toList()), tag.getName());
} }
/** /**
@@ -583,8 +583,8 @@ public class TargetManagement {
@NotNull final String tagName) { @NotNull final String tagName) {
final TargetTag tag = targetTagRepository.findByNameEquals(tagName); final TargetTag tag = targetTagRepository.findByNameEquals(tagName);
final List<Target> alreadyAssignedTargets = targetRepository.findByTagNameAndControllerIdIn(tagName, targetIds); final List<Target> alreadyAssignedTargets = targetRepository.findByTagNameAndControllerIdIn(tagName, targetIds);
final List<Target> allTargets = targetRepository.findAll(TargetSpecifications final List<Target> allTargets = targetRepository
.byControllerIdWithStatusAndTagsInJoin(targetIds)); .findAll(TargetSpecifications.byControllerIdWithStatusAndTagsInJoin(targetIds));
// all are already assigned -> unassign // all are already assigned -> unassign
if (alreadyAssignedTargets.size() == allTargets.size()) { if (alreadyAssignedTargets.size() == allTargets.size()) {
@@ -623,8 +623,8 @@ public class TargetManagement {
@NotNull @NotNull
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET)
public List<Target> assignTag(@NotEmpty final Collection<String> targetIds, @NotNull final TargetTag tag) { public List<Target> assignTag(@NotEmpty final Collection<String> targetIds, @NotNull final TargetTag tag) {
final List<Target> allTargets = targetRepository.findAll(TargetSpecifications final List<Target> allTargets = targetRepository
.byControllerIdWithStatusAndTagsInJoin(targetIds)); .findAll(TargetSpecifications.byControllerIdWithStatusAndTagsInJoin(targetIds));
allTargets.forEach(target -> target.getTags().add(tag)); allTargets.forEach(target -> target.getTags().add(tag));
final List<Target> save = targetRepository.save(allTargets); final List<Target> save = targetRepository.save(allTargets);
@@ -678,8 +678,8 @@ public class TargetManagement {
@Transactional @Transactional
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET)
public Target unAssignTag(@NotNull final String controllerID, @NotNull final TargetTag targetTag) { public Target unAssignTag(@NotNull final String controllerID, @NotNull final TargetTag targetTag) {
final List<Target> allTargets = targetRepository.findAll(TargetSpecifications final List<Target> allTargets = targetRepository
.byControllerIdWithStatusAndTagsInJoin(Arrays.asList(controllerID))); .findAll(TargetSpecifications.byControllerIdWithStatusAndTagsInJoin(Arrays.asList(controllerID)));
final List<Target> unAssignTag = unAssignTag(allTargets, targetTag); final List<Target> unAssignTag = unAssignTag(allTargets, targetTag);
return unAssignTag.isEmpty() ? null : unAssignTag.get(0); return unAssignTag.isEmpty() ? null : unAssignTag.get(0);
} }
@@ -740,19 +740,20 @@ public class TargetManagement {
// select case expression to retrieve the case value as a column to be // select case expression to retrieve the case value as a column to be
// able to order based on // able to order based on
// this column, installed first,... // this column, installed first,...
final Expression<Object> selectCase = cb final Expression<Object> selectCase = cb.selectCase()
.selectCase()
.when(cb.equal(targetInfo.get(TargetInfo_.installedDistributionSet).get(DistributionSet_.id), .when(cb.equal(targetInfo.get(TargetInfo_.installedDistributionSet).get(DistributionSet_.id),
orderByDistributionId), 1) orderByDistributionId), 1)
.when(cb.equal(targetRoot.get(Target_.assignedDistributionSet).get(DistributionSet_.id), .when(cb.equal(targetRoot.get(Target_.assignedDistributionSet).get(DistributionSet_.id),
orderByDistributionId), 2).otherwise(100); orderByDistributionId), 2)
.otherwise(100);
// multiselect statement order by the select case and controllerId // multiselect statement order by the select case and controllerId
query.distinct(true); query.distinct(true);
// build the specifications and then to predicates necessary by the // build the specifications and then to predicates necessary by the
// given filters // given filters
final Predicate[] specificationsForMultiSelect = specificationsToPredicate( final Predicate[] specificationsForMultiSelect = specificationsToPredicate(
buildSpecificationList(filterByStatus, filterBySearchText, filterByDistributionId, buildSpecificationList(filterByStatus, filterBySearchText, filterByDistributionId,
selectTargetWithNoTag, true, filterByTagNames), targetRoot, query, cb); selectTargetWithNoTag, true, filterByTagNames),
targetRoot, query, cb);
// if we have some predicates then add it to the where clause of the // if we have some predicates then add it to the where clause of the
// multiselect // multiselect
@@ -826,9 +827,8 @@ public class TargetManagement {
final CriteriaBuilder cb = entityManager.getCriteriaBuilder(); final CriteriaBuilder cb = entityManager.getCriteriaBuilder();
final CriteriaQuery<TargetIdName> query = cb.createQuery(TargetIdName.class); final CriteriaQuery<TargetIdName> query = cb.createQuery(TargetIdName.class);
final Root<Target> targetRoot = query.from(Target.class); final Root<Target> targetRoot = query.from(Target.class);
return entityManager.createQuery( return entityManager.createQuery(query.multiselect(targetRoot.get(Target_.id),
query.multiselect(targetRoot.get(Target_.id), targetRoot.get(Target_.controllerId), targetRoot.get(Target_.controllerId), targetRoot.get(Target_.name))).getResultList();
targetRoot.get(Target_.name))).getResultList();
} }
@@ -870,7 +870,8 @@ public class TargetManagement {
final Predicate[] specificationsForMultiSelect = specificationsToPredicate( final Predicate[] specificationsForMultiSelect = specificationsToPredicate(
buildSpecificationList(filterByStatus, filterBySearchText, filterByDistributionId, buildSpecificationList(filterByStatus, filterBySearchText, filterByDistributionId,
selectTargetWithNoTag, false, filterByTagNames), targetRoot, multiselect, cb); selectTargetWithNoTag, false, filterByTagNames),
targetRoot, multiselect, cb);
// if we have some predicates then add it to the where clause of the // if we have some predicates then add it to the where clause of the
// multiselect // multiselect
@@ -1000,16 +1001,17 @@ public class TargetManagement {
* to be created. * to be created.
* @return the created {@link Target}s * @return the created {@link Target}s
* *
* @throws {@link EntityAlreadyExistsException} of one of the given targets * @throws {@link
* already exist. * EntityAlreadyExistsException} of one of the given targets
* already exist.
*/ */
@Modifying @Modifying
@Transactional @Transactional
@NotNull @NotNull
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_TARGET) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_TARGET)
public List<Target> createTargets(@NotNull final List<Target> targets) { public List<Target> createTargets(@NotNull final List<Target> targets) {
if (targetRepository.countByControllerIdIn(targets.stream().map(target -> target.getControllerId()) if (targetRepository.countByControllerIdIn(
.collect(Collectors.toList())) > 0) { targets.stream().map(target -> target.getControllerId()).collect(Collectors.toList())) > 0) {
throw new EntityAlreadyExistsException(); throw new EntityAlreadyExistsException();
} }
final List<Target> savedTargets = new ArrayList<>(); final List<Target> savedTargets = new ArrayList<>();
@@ -1041,8 +1043,8 @@ public class TargetManagement {
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_TARGET) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_TARGET)
public List<Target> createTargets(@NotNull final Collection<Target> targets, public List<Target> createTargets(@NotNull final Collection<Target> targets,
@NotNull final TargetUpdateStatus status, final long lastTargetQuery, final URI address) { @NotNull final TargetUpdateStatus status, final long lastTargetQuery, final URI address) {
if (targetRepository.countByControllerIdIn(targets.stream().map(target -> target.getControllerId()) if (targetRepository.countByControllerIdIn(
.collect(Collectors.toList())) > 0) { targets.stream().map(target -> target.getControllerId()).collect(Collectors.toList())) > 0) {
throw new EntityAlreadyExistsException(); throw new EntityAlreadyExistsException();
} }
final List<Target> savedTargets = new ArrayList<>(); final List<Target> savedTargets = new ArrayList<>();

View File

@@ -22,11 +22,12 @@ import org.springframework.transaction.annotation.Transactional;
* *
*/ */
@Transactional(readOnly = true) @Transactional(readOnly = true)
public interface TargetTagRepository extends BaseEntityRepository<TargetTag, Long>, JpaSpecificationExecutor<TargetTag> { public interface TargetTagRepository
extends BaseEntityRepository<TargetTag, Long>, JpaSpecificationExecutor<TargetTag> {
/** /**
* deletes the {@link TargetTag}s with the given tag names. * deletes the {@link TargetTag}s with the given tag names.
* *
* @param tagNames * @param tagNames
* to be deleted * to be deleted
* @return 1 if tag was deleted * @return 1 if tag was deleted
@@ -37,7 +38,7 @@ public interface TargetTagRepository extends BaseEntityRepository<TargetTag, Lon
/** /**
* find {@link TargetTag} by its name. * find {@link TargetTag} by its name.
* *
* @param tagName * @param tagName
* to filter on * to filter on
* @return the {@link TargetTag} if found, otherwise null * @return the {@link TargetTag} if found, otherwise null

View File

@@ -28,8 +28,9 @@ import javax.persistence.UniqueConstraint;
* *
*/ */
@Entity @Entity
@Table(name = "sp_distributionset_tag", indexes = { @Index(name = "sp_idx_distribution_set_tag_prim", columnList = "tenant,id") }, uniqueConstraints = @UniqueConstraint(columnNames = { @Table(name = "sp_distributionset_tag", indexes = {
"name", "tenant" }, name = "uk_ds_tag")) @Index(name = "sp_idx_distribution_set_tag_prim", columnList = "tenant,id") }, uniqueConstraints = @UniqueConstraint(columnNames = {
"name", "tenant" }, name = "uk_ds_tag") )
public class DistributionSetTag extends Tag { public class DistributionSetTag extends Tag {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -59,7 +59,7 @@ public class DistributionSetType extends NamedEntity {
private boolean deleted = false; private boolean deleted = false;
public DistributionSetType() { public DistributionSetType() {
//default public constructor // default public constructor
} }
/** /**

View File

@@ -156,8 +156,8 @@ public final class RSQLUtility {
* @param <T> * @param <T>
* the entity type referenced by the root * the entity type referenced by the root
*/ */
private static final class JpqQueryRSQLVisitor<A extends Enum<A> & FieldNameProvider, T> implements private static final class JpqQueryRSQLVisitor<A extends Enum<A> & FieldNameProvider, T>
RSQLVisitor<List<Predicate>, String> { implements RSQLVisitor<List<Predicate>, String> {
public static final Character LIKE_WILDCARD = '*'; public static final Character LIKE_WILDCARD = '*';
private final Root<T> root; private final Root<T> root;
@@ -239,9 +239,11 @@ public final class RSQLUtility {
} }
} }
private RSQLParameterUnsupportedFieldException createRSQLParameterUnsupportedException(final ComparisonNode node) { private RSQLParameterUnsupportedFieldException createRSQLParameterUnsupportedException(
return new RSQLParameterUnsupportedFieldException("The given search parameter field {" + node.getSelector() final ComparisonNode node) {
+ "} does not exist, must be one of the following fields {" + getExpectedFieldList() + "}", return new RSQLParameterUnsupportedFieldException(
"The given search parameter field {" + node.getSelector()
+ "} does not exist, must be one of the following fields {" + getExpectedFieldList() + "}",
new Exception()); new Exception());
} }
@@ -271,10 +273,10 @@ public final class RSQLUtility {
fieldName = getFieldEnumByName(node); fieldName = getFieldEnumByName(node);
} catch (final IllegalArgumentException e) { } catch (final IllegalArgumentException e) {
throw new RSQLParameterUnsupportedFieldException("The given search parameter field {" throw new RSQLParameterUnsupportedFieldException("The given search parameter field {"
+ node.getSelector() + node.getSelector() + "} does not exist, must be one of the following fields {"
+ "} does not exist, must be one of the following fields {"
+ Arrays.stream(enumType.getEnumConstants()).map(v -> v.name().toLowerCase()) + Arrays.stream(enumType.getEnumConstants()).map(v -> v.name().toLowerCase())
.collect(Collectors.toList()) + "}", e); .collect(Collectors.toList())
+ "}", e);
} }
final String finalProperty = getAndValidatePropertyFieldName(fieldName, node); final String finalProperty = getAndValidatePropertyFieldName(fieldName, node);
@@ -302,20 +304,15 @@ public final class RSQLUtility {
return enumFieldName; return enumFieldName;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
final List<String> expectedSubFieldList = Arrays final List<String> expectedSubFieldList = Arrays.stream(enumType.getEnumConstants())
.stream(enumType.getEnumConstants()) .filter(enumField -> !enumField.getSubEntityAttributes().isEmpty()).flatMap(enumField -> {
.filter(enumField -> !enumField.getSubEntityAttributes().isEmpty()) final List<String> subEntity = enumField.getSubEntityAttributes().stream()
.flatMap( .map(fieldName -> enumField.name().toLowerCase()
enumField -> { + FieldNameProvider.SUB_ATTRIBUTE_SEPERATOR + fieldName)
final List<String> subEntity = enumField .collect(Collectors.toList());
.getSubEntityAttributes()
.stream()
.map(fieldName -> enumField.name().toLowerCase()
+ FieldNameProvider.SUB_ATTRIBUTE_SEPERATOR + fieldName)
.collect(Collectors.toList());
return subEntity.stream(); return subEntity.stream();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
expectedFieldList.addAll(expectedSubFieldList); expectedFieldList.addAll(expectedSubFieldList);
return expectedFieldList; return expectedFieldList;
} }
@@ -373,11 +370,10 @@ public final class RSQLUtility {
javaType); javaType);
LOGGER.debug("value cannot be transformed to an enum", e); LOGGER.debug("value cannot be transformed to an enum", e);
throw new RSQLParameterUnsupportedFieldException("field {" throw new RSQLParameterUnsupportedFieldException("field {" + node.getSelector()
+ node.getSelector() + "} must be one of the following values {" + Arrays.stream(tmpEnumType.getEnumConstants())
+ "} must be one of the following values {" .map(v -> v.name().toLowerCase()).collect(Collectors.toList())
+ Arrays.stream(tmpEnumType.getEnumConstants()).map(v -> v.name().toLowerCase()) + "}", e);
.collect(Collectors.toList()) + "}", e);
} }
} }
@@ -442,7 +438,8 @@ public final class RSQLUtility {
return fieldPath.get(enumField.getValueFieldName()); return fieldPath.get(enumField.getValueFieldName());
} }
private Predicate mapToMapPredicate(final ComparisonNode node, final Path<Object> fieldPath, final A enumField) { private Predicate mapToMapPredicate(final ComparisonNode node, final Path<Object> fieldPath,
final A enumField) {
if (!enumField.isMap()) { if (!enumField.isMap()) {
return null; return null;
} }

View File

@@ -151,9 +151,10 @@ public final class DistributionSetSpecification {
@Override @Override
public Predicate toPredicate(final Root<DistributionSet> targetRoot, final CriteriaQuery<?> query, public Predicate toPredicate(final Root<DistributionSet> targetRoot, final CriteriaQuery<?> query,
final CriteriaBuilder cb) { final CriteriaBuilder cb) {
final Predicate predicate = cb.or( final Predicate predicate = cb
cb.like(cb.lower(targetRoot.<String> get(DistributionSet_.name)), subString.toLowerCase()), .or(cb.like(cb.lower(targetRoot.<String> get(DistributionSet_.name)), subString.toLowerCase()),
cb.like(cb.lower(targetRoot.<String> get(DistributionSet_.version)), subString.toLowerCase()), cb.like(cb.lower(targetRoot.<String> get(DistributionSet_.version)),
subString.toLowerCase()),
cb.like(cb.lower(targetRoot.<String> get(DistributionSet_.description)), cb.like(cb.lower(targetRoot.<String> get(DistributionSet_.description)),
subString.toLowerCase())); subString.toLowerCase()));
return predicate; return predicate;
@@ -215,7 +216,8 @@ public final class DistributionSetSpecification {
* to be filtered on * to be filtered on
* @return the {@link Specification} * @return the {@link Specification}
*/ */
public static Specification<DistributionSet> equalsNameAndVersionIgnoreCase(final String name, final String version) { public static Specification<DistributionSet> equalsNameAndVersionIgnoreCase(final String name,
final String version) {
final Specification<DistributionSet> spec = new Specification<DistributionSet>() { final Specification<DistributionSet> spec = new Specification<DistributionSet>() {
@Override @Override
public Predicate toPredicate(final Root<DistributionSet> targetRoot, final CriteriaQuery<?> query, public Predicate toPredicate(final Root<DistributionSet> targetRoot, final CriteriaQuery<?> query,
@@ -265,8 +267,8 @@ public final class DistributionSetSpecification {
@Override @Override
public Predicate toPredicate(final Root<DistributionSet> dsRoot, final CriteriaQuery<?> query, public Predicate toPredicate(final Root<DistributionSet> dsRoot, final CriteriaQuery<?> query,
final CriteriaBuilder cb) { final CriteriaBuilder cb) {
final ListJoin<DistributionSet, TargetInfo> installedTargetJoin = dsRoot.join( final ListJoin<DistributionSet, TargetInfo> installedTargetJoin = dsRoot
DistributionSet_.installedAtTargets, JoinType.INNER); .join(DistributionSet_.installedAtTargets, JoinType.INNER);
final Join<TargetInfo, Target> targetJoin = installedTargetJoin.join(TargetInfo_.target); final Join<TargetInfo, Target> targetJoin = installedTargetJoin.join(TargetInfo_.target);
return cb.equal(targetJoin.get(Target_.controllerId), installedTargetId); return cb.equal(targetJoin.get(Target_.controllerId), installedTargetId);
} }
@@ -287,8 +289,8 @@ public final class DistributionSetSpecification {
@Override @Override
public Predicate toPredicate(final Root<DistributionSet> dsRoot, final CriteriaQuery<?> query, public Predicate toPredicate(final Root<DistributionSet> dsRoot, final CriteriaQuery<?> query,
final CriteriaBuilder cb) { final CriteriaBuilder cb) {
final ListJoin<DistributionSet, Target> assignedTargetJoin = dsRoot.join( final ListJoin<DistributionSet, Target> assignedTargetJoin = dsRoot
DistributionSet_.assignedToTargets, JoinType.INNER); .join(DistributionSet_.assignedToTargets, JoinType.INNER);
return cb.equal(assignedTargetJoin.get(Target_.controllerId), assignedTargetId); return cb.equal(assignedTargetJoin.get(Target_.controllerId), assignedTargetId);
} }
}; };

View File

@@ -77,7 +77,8 @@ public final class TargetSpecifications {
* *
* @return the {@link Target} {@link Specification} * @return the {@link Target} {@link Specification}
*/ */
public static Specification<Target> byControllerIdWithStatusAndAssignedInJoin(final Collection<String> controllerIDs) { public static Specification<Target> byControllerIdWithStatusAndAssignedInJoin(
final Collection<String> controllerIDs) {
final Specification<Target> spec = new Specification<Target>() { final Specification<Target> spec = new Specification<Target>() {
@Override @Override
public Predicate toPredicate(final Root<Target> targetRoot, final CriteriaQuery<?> query, public Predicate toPredicate(final Root<Target> targetRoot, final CriteriaQuery<?> query,
@@ -162,10 +163,11 @@ public final class TargetSpecifications {
public Predicate toPredicate(final Root<Target> targetRoot, final CriteriaQuery<?> query, public Predicate toPredicate(final Root<Target> targetRoot, final CriteriaQuery<?> query,
final CriteriaBuilder cb) { final CriteriaBuilder cb) {
final Join<Target, TargetInfo> targetInfoJoin = targetRoot.join(Target_.targetInfo); final Join<Target, TargetInfo> targetInfoJoin = targetRoot.join(Target_.targetInfo);
final Predicate predicate = cb.or(cb.equal(targetInfoJoin.get(TargetInfo_.installedDistributionSet) final Predicate predicate = cb.or(
.get(DistributionSet_.id), distributionId), cb.equal( cb.equal(targetInfoJoin.get(TargetInfo_.installedDistributionSet).get(DistributionSet_.id),
targetRoot.<DistributionSet> get(Target_.assignedDistributionSet).get(DistributionSet_.id), distributionId),
distributionId)); cb.equal(targetRoot.<DistributionSet> get(Target_.assignedDistributionSet)
.get(DistributionSet_.id), distributionId));
return predicate; return predicate;
} }
}; };
@@ -189,12 +191,10 @@ public final class TargetSpecifications {
@Override @Override
public Predicate toPredicate(final Root<Target> targetRoot, final CriteriaQuery<?> query, public Predicate toPredicate(final Root<Target> targetRoot, final CriteriaQuery<?> query,
final CriteriaBuilder cb) { final CriteriaBuilder cb) {
final Predicate predicate = cb.and( final Predicate predicate = cb.and(targetRoot.get(Target_.controllerId).in(tIDs),
targetRoot.get(Target_.controllerId).in(tIDs), cb.or(cb.notEqual(targetRoot.<DistributionSet> get(Target_.assignedDistributionSet)
cb.or(cb.notEqual( .get(DistributionSet_.id), distributionId),
targetRoot.<DistributionSet> get(Target_.assignedDistributionSet).get( cb.isNull(targetRoot.<DistributionSet> get(Target_.assignedDistributionSet))));
DistributionSet_.id), distributionId),
cb.isNull(targetRoot.<DistributionSet> get(Target_.assignedDistributionSet))));
return predicate; return predicate;
} }
}; };

View File

@@ -44,16 +44,16 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort.Direction; import org.springframework.data.domain.Sort.Direction;
import ru.yandex.qatools.allure.annotations.Description;
import ru.yandex.qatools.allure.annotations.Features;
import ru.yandex.qatools.allure.annotations.Issue;
import ru.yandex.qatools.allure.annotations.Stories;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.eventbus.EventBus; import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe; import com.google.common.eventbus.Subscribe;
import ru.yandex.qatools.allure.annotations.Description;
import ru.yandex.qatools.allure.annotations.Features;
import ru.yandex.qatools.allure.annotations.Issue;
import ru.yandex.qatools.allure.annotations.Stories;
/** /**
* Test class testing the functionality of triggering a deployment of * Test class testing the functionality of triggering a deployment of
* {@link DistributionSet}s to {@link Target}s. * {@link DistributionSet}s to {@link Target}s.
@@ -129,21 +129,19 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
final DistributionSet cancelDs = TestDataUtil.generateDistributionSet("Canceled DS", "1.0", softwareManagement, final DistributionSet cancelDs = TestDataUtil.generateDistributionSet("Canceled DS", "1.0", softwareManagement,
distributionSetManagement, new ArrayList<DistributionSetTag>()); distributionSetManagement, new ArrayList<DistributionSetTag>());
final DistributionSet cancelDs2 = TestDataUtil.generateDistributionSet("Canceled DS", "1.2", final DistributionSet cancelDs2 = TestDataUtil.generateDistributionSet("Canceled DS", "1.2", softwareManagement,
softwareManagement, distributionSetManagement, new ArrayList<DistributionSetTag>()); distributionSetManagement, new ArrayList<DistributionSetTag>());
List<Target> targets = targetManagement.createTargets(TestDataUtil List<Target> targets = targetManagement
.generateTargets(Constants.MAX_ENTRIES_IN_STATEMENT + 10)); .createTargets(TestDataUtil.generateTargets(Constants.MAX_ENTRIES_IN_STATEMENT + 10));
targets = deploymentManagement.assignDistributionSet(cancelDs, targets).getAssignedTargets(); targets = deploymentManagement.assignDistributionSet(cancelDs, targets).getAssignedTargets();
targets = deploymentManagement.assignDistributionSet(cancelDs2, targets).getAssignedTargets(); targets = deploymentManagement.assignDistributionSet(cancelDs2, targets).getAssignedTargets();
targetManagement.findAllTargetIds().forEach( targetManagement.findAllTargetIds().forEach(targetIdName -> {
targetIdName -> { assertThat(deploymentManagement.findActiveActionsByTarget(
assertThat( targetManagement.findTargetByControllerID(targetIdName.getControllerId()))).hasSize(2);
deploymentManagement.findActiveActionsByTarget(targetManagement });
.findTargetByControllerID(targetIdName.getControllerId()))).hasSize(2);
});
} }
@Test @Test
@@ -164,8 +162,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
target = targetManagement.createTarget(target); target = targetManagement.createTarget(target);
// check initial status // check initial status
assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus())
TargetUpdateStatus.UNKNOWN); .isEqualTo(TargetUpdateStatus.UNKNOWN);
// assign the two sets in a row // assign the two sets in a row
Action firstAction = assignSet(target, dsFirst); Action firstAction = assignSet(target, dsFirst);
@@ -184,8 +182,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
new ActionStatus(secondAction, Status.CANCELED, System.currentTimeMillis()), secondAction); new ActionStatus(secondAction, Status.CANCELED, System.currentTimeMillis()), secondAction);
assertThat(actionStatusRepository.findAll()).hasSize(4); assertThat(actionStatusRepository.findAll()).hasSize(4);
assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()).isEqualTo(dsFirst); assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()).isEqualTo(dsFirst);
assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus())
TargetUpdateStatus.PENDING); .isEqualTo(TargetUpdateStatus.PENDING);
// we cancel first -> back to installed // we cancel first -> back to installed
deploymentManagement.cancelAction(firstAction, deploymentManagement.cancelAction(firstAction,
@@ -196,10 +194,10 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
controllerManagement.addCancelActionStatus( controllerManagement.addCancelActionStatus(
new ActionStatus(firstAction, Status.CANCELED, System.currentTimeMillis()), firstAction); new ActionStatus(firstAction, Status.CANCELED, System.currentTimeMillis()), firstAction);
assertThat(actionStatusRepository.findAll()).hasSize(6); assertThat(actionStatusRepository.findAll()).hasSize(6);
assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet())
dsInstalled); .isEqualTo(dsInstalled);
assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus())
TargetUpdateStatus.IN_SYNC); .isEqualTo(TargetUpdateStatus.IN_SYNC);
} }
@Test @Test
@@ -220,8 +218,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
target = targetManagement.createTarget(target); target = targetManagement.createTarget(target);
// check initial status // check initial status
assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus())
TargetUpdateStatus.UNKNOWN); .isEqualTo(TargetUpdateStatus.UNKNOWN);
// assign the two sets in a row // assign the two sets in a row
Action firstAction = assignSet(target, dsFirst); Action firstAction = assignSet(target, dsFirst);
@@ -240,8 +238,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
new ActionStatus(firstAction, Status.CANCELED, System.currentTimeMillis()), firstAction); new ActionStatus(firstAction, Status.CANCELED, System.currentTimeMillis()), firstAction);
assertThat(actionStatusRepository.findAll()).hasSize(4); assertThat(actionStatusRepository.findAll()).hasSize(4);
assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()).isEqualTo(dsSecond); assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()).isEqualTo(dsSecond);
assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus())
TargetUpdateStatus.PENDING); .isEqualTo(TargetUpdateStatus.PENDING);
// we cancel second -> remain assigned until finished cancellation // we cancel second -> remain assigned until finished cancellation
deploymentManagement.cancelAction(secondAction, deploymentManagement.cancelAction(secondAction,
@@ -254,10 +252,10 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
controllerManagement.addCancelActionStatus( controllerManagement.addCancelActionStatus(
new ActionStatus(secondAction, Status.CANCELED, System.currentTimeMillis()), secondAction); new ActionStatus(secondAction, Status.CANCELED, System.currentTimeMillis()), secondAction);
// cancelled success -> back to dsInstalled // cancelled success -> back to dsInstalled
assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet())
dsInstalled); .isEqualTo(dsInstalled);
assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus())
TargetUpdateStatus.IN_SYNC); .isEqualTo(TargetUpdateStatus.IN_SYNC);
} }
@Test @Test
@@ -270,12 +268,13 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
target.getTargetInfo().setInstalledDistributionSet(dsInstalled); target.getTargetInfo().setInstalledDistributionSet(dsInstalled);
target = targetManagement.createTarget(target); target = targetManagement.createTarget(target);
final DistributionSet ds = TestDataUtil.generateDistributionSet("newDS", softwareManagement, final DistributionSet ds = TestDataUtil
distributionSetManagement, true).setRequiredMigrationStep(true); .generateDistributionSet("newDS", softwareManagement, distributionSetManagement, true)
.setRequiredMigrationStep(true);
// verify initial status // verify initial status
assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus())
TargetUpdateStatus.UNKNOWN); .isEqualTo(TargetUpdateStatus.UNKNOWN);
Action assigningAction = assignSet(target, ds); Action assigningAction = assignSet(target, ds);
@@ -295,10 +294,10 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
// verify // verify
assertThat(assigningAction.getStatus()).isEqualTo(Status.CANCELED); assertThat(assigningAction.getStatus()).isEqualTo(Status.CANCELED);
assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet())
dsInstalled); .isEqualTo(dsInstalled);
assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus())
TargetUpdateStatus.IN_SYNC); .isEqualTo(TargetUpdateStatus.IN_SYNC);
} }
@Test @Test
@@ -311,12 +310,13 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
target.getTargetInfo().setInstalledDistributionSet(dsInstalled); target.getTargetInfo().setInstalledDistributionSet(dsInstalled);
target = targetManagement.createTarget(target); target = targetManagement.createTarget(target);
final DistributionSet ds = TestDataUtil.generateDistributionSet("newDS", softwareManagement, final DistributionSet ds = TestDataUtil
distributionSetManagement, true).setRequiredMigrationStep(true); .generateDistributionSet("newDS", softwareManagement, distributionSetManagement, true)
.setRequiredMigrationStep(true);
// verify initial status // verify initial status
assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()).isEqualTo( assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus())
TargetUpdateStatus.UNKNOWN); .isEqualTo(TargetUpdateStatus.UNKNOWN);
final Action assigningAction = assignSet(target, ds); final Action assigningAction = assignSet(target, ds);
@@ -337,7 +337,7 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
deploymentManagement.assignDistributionSet(ds.getId(), new String[] { target.getControllerId() }); deploymentManagement.assignDistributionSet(ds.getId(), new String[] { target.getControllerId() });
assertThat( assertThat(
targetManagement.findTargetByControllerID(target.getControllerId()).getTargetInfo().getUpdateStatus()) targetManagement.findTargetByControllerID(target.getControllerId()).getTargetInfo().getUpdateStatus())
.isEqualTo(TargetUpdateStatus.PENDING); .isEqualTo(TargetUpdateStatus.PENDING);
assertThat(targetManagement.findTargetByControllerID(target.getControllerId()).getAssignedDistributionSet()) assertThat(targetManagement.findTargetByControllerID(target.getControllerId()).getAssignedDistributionSet())
.isEqualTo(ds); .isEqualTo(ds);
final Action action = actionRepository.findByTargetAndDistributionSet(pageReq, target, ds).getContent().get(0); final Action action = actionRepository.findByTargetAndDistributionSet(pageReq, target, ds).getContent().get(0);
@@ -360,12 +360,12 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
eventBus.register(eventHandlerMock); eventBus.register(eventHandlerMock);
final String myCtrlIDPref = "myCtrlID"; final String myCtrlIDPref = "myCtrlID";
final Iterable<Target> savedNakedTargets = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(10, final Iterable<Target> savedNakedTargets = targetManagement
myCtrlIDPref, "first description")); .createTargets(TestDataUtil.buildTargetFixtures(10, myCtrlIDPref, "first description"));
final String myDeployedCtrlIDPref = "myDeployedCtrlID"; final String myDeployedCtrlIDPref = "myDeployedCtrlID";
final List<Target> savedDeployedTargets = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(20, final List<Target> savedDeployedTargets = targetManagement
myDeployedCtrlIDPref, "first description")); .createTargets(TestDataUtil.buildTargetFixtures(20, myDeployedCtrlIDPref, "first description"));
final DistributionSet ds = TestDataUtil.generateDistributionSet("", softwareManagement, final DistributionSet ds = TestDataUtil.generateDistributionSet("", softwareManagement,
distributionSetManagement); distributionSetManagement);
@@ -409,15 +409,15 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
final List<Target> targets = targetManagement.createTargets(TestDataUtil.generateTargets(10)); final List<Target> targets = targetManagement.createTargets(TestDataUtil.generateTargets(10));
final SoftwareModule ah = softwareManagement.createSoftwareModule(new SoftwareModule(appType, "agent-hub", final SoftwareModule ah = softwareManagement
"1.0.1", null, "")); .createSoftwareModule(new SoftwareModule(appType, "agent-hub", "1.0.1", null, ""));
final SoftwareModule jvm = softwareManagement.createSoftwareModule(new SoftwareModule(runtimeType, final SoftwareModule jvm = softwareManagement
"oracle-jre", "1.7.2", null, "")); .createSoftwareModule(new SoftwareModule(runtimeType, "oracle-jre", "1.7.2", null, ""));
final SoftwareModule os = softwareManagement.createSoftwareModule(new SoftwareModule(osType, "poky", "3.0.2", final SoftwareModule os = softwareManagement
null, "")); .createSoftwareModule(new SoftwareModule(osType, "poky", "3.0.2", null, ""));
final DistributionSet incomplete = distributionSetManagement.createDistributionSet(new DistributionSet( final DistributionSet incomplete = distributionSetManagement.createDistributionSet(
"incomplete", "v1", "", standardDsType, Lists.newArrayList(ah, jvm))); new DistributionSet("incomplete", "v1", "", standardDsType, Lists.newArrayList(ah, jvm)));
try { try {
deploymentManagement.assignDistributionSet(incomplete, targets); deploymentManagement.assignDistributionSet(incomplete, targets);
@@ -487,18 +487,18 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
final Iterable<Target> undeployedTargetsFromDB = targetRepository.findAll(undeployedTargetIDs); final Iterable<Target> undeployedTargetsFromDB = targetRepository.findAll(undeployedTargetIDs);
// test that number of Targets // test that number of Targets
assertThat(allFoundTargets.spliterator().getExactSizeIfKnown()).isEqualTo( assertThat(allFoundTargets.spliterator().getExactSizeIfKnown())
deployedTargetsFromDB.spliterator().getExactSizeIfKnown() .isEqualTo(deployedTargetsFromDB.spliterator().getExactSizeIfKnown()
+ undeployedTargetsFromDB.spliterator().getExactSizeIfKnown()); + undeployedTargetsFromDB.spliterator().getExactSizeIfKnown());
assertThat(deployedTargetsFromDB.spliterator().getExactSizeIfKnown()).isEqualTo(noOfDeployedTargets); assertThat(deployedTargetsFromDB.spliterator().getExactSizeIfKnown()).isEqualTo(noOfDeployedTargets);
assertThat(undeployedTargetsFromDB.spliterator().getExactSizeIfKnown()).isEqualTo(noOfUndeployedTargets); assertThat(undeployedTargetsFromDB.spliterator().getExactSizeIfKnown()).isEqualTo(noOfUndeployedTargets);
// test the content of different lists // test the content of different lists
assertThat(allFoundTargets).containsAll(deployedTargetsFromDB).containsAll(undeployedTargetsFromDB); assertThat(allFoundTargets).containsAll(deployedTargetsFromDB).containsAll(undeployedTargetsFromDB);
assertThat(deployedTargetsFromDB).containsAll(savedDeployedTargets).doesNotContain( assertThat(deployedTargetsFromDB).containsAll(savedDeployedTargets)
Iterables.toArray(undeployedTargetsFromDB, Target.class)); .doesNotContain(Iterables.toArray(undeployedTargetsFromDB, Target.class));
assertThat(undeployedTargetsFromDB).containsAll(savedNakedTargets).doesNotContain( assertThat(undeployedTargetsFromDB).containsAll(savedNakedTargets)
Iterables.toArray(deployedTargetsFromDB, Target.class)); .doesNotContain(Iterables.toArray(deployedTargetsFromDB, Target.class));
// For each of the 4 targets 1 distribution sets gets assigned // For each of the 4 targets 1 distribution sets gets assigned
eventHandlerMock.getEvents(10, TimeUnit.SECONDS); eventHandlerMock.getEvents(10, TimeUnit.SECONDS);
@@ -532,21 +532,18 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
// verifying the correctness of the assignments // verifying the correctness of the assignments
for (final Target t : deployResWithDsA.getDeployedTargets()) { for (final Target t : deployResWithDsA.getDeployedTargets()) {
assertThat(t.getAssignedDistributionSet().getId()).isEqualTo(dsA.getId()); assertThat(t.getAssignedDistributionSet().getId()).isEqualTo(dsA.getId());
assertThat( assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo()
targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo() .getInstalledDistributionSet()).isNull();
.getInstalledDistributionSet()).isNull();
} }
for (final Target t : deployResWithDsB.getDeployedTargets()) { for (final Target t : deployResWithDsB.getDeployedTargets()) {
assertThat(t.getAssignedDistributionSet().getId()).isEqualTo(dsB.getId()); assertThat(t.getAssignedDistributionSet().getId()).isEqualTo(dsB.getId());
assertThat( assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo()
targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo() .getInstalledDistributionSet()).isNull();
.getInstalledDistributionSet()).isNull();
} }
for (final Target t : deployResWithDsC.getDeployedTargets()) { for (final Target t : deployResWithDsC.getDeployedTargets()) {
assertThat(t.getAssignedDistributionSet().getId()).isEqualTo(dsC.getId()); assertThat(t.getAssignedDistributionSet().getId()).isEqualTo(dsC.getId());
assertThat( assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo()
targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo() .getInstalledDistributionSet()).isNull();
.getInstalledDistributionSet()).isNull();
assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo().getUpdateStatus()) assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo().getUpdateStatus())
.isEqualTo(TargetUpdateStatus.PENDING); .isEqualTo(TargetUpdateStatus.PENDING);
} }
@@ -559,9 +556,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
for (final Target t_ : updatedTsDsA) { for (final Target t_ : updatedTsDsA) {
final Target t = targetManagement.findTargetByControllerID(t_.getControllerId()); final Target t = targetManagement.findTargetByControllerID(t_.getControllerId());
assertThat(t.getAssignedDistributionSet()).isEqualTo(dsA); assertThat(t.getAssignedDistributionSet()).isEqualTo(dsA);
assertThat( assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo()
targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo() .getInstalledDistributionSet()).isEqualTo(dsA);
.getInstalledDistributionSet()).isEqualTo(dsA);
assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo().getUpdateStatus()) assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo().getUpdateStatus())
.isEqualTo(TargetUpdateStatus.IN_SYNC); .isEqualTo(TargetUpdateStatus.IN_SYNC);
assertThat(deploymentManagement.findActiveActionsByTarget(t)).hasSize(0); assertThat(deploymentManagement.findActiveActionsByTarget(t)).hasSize(0);
@@ -571,8 +567,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
// remove updActB from // remove updActB from
// activeActions, add a corresponding cancelAction and another // activeActions, add a corresponding cancelAction and another
// UpdateAction for dsA // UpdateAction for dsA
final Iterable<Target> deployed2DS = deploymentManagement.assignDistributionSet(dsA, final Iterable<Target> deployed2DS = deploymentManagement
deployResWithDsB.getDeployedTargets()).getAssignedTargets(); .assignDistributionSet(dsA, deployResWithDsB.getDeployedTargets()).getAssignedTargets();
final Action updActA2 = actionRepository.findByDistributionSet(pageRequest, dsA).getContent().get(1); final Action updActA2 = actionRepository.findByDistributionSet(pageRequest, dsA).getContent().get(1);
assertThat(deployed2DS).containsAll(deployResWithDsB.getDeployedTargets()); assertThat(deployed2DS).containsAll(deployResWithDsB.getDeployedTargets());
@@ -581,9 +577,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
for (final Target t_ : deployed2DS) { for (final Target t_ : deployed2DS) {
final Target t = targetManagement.findTargetByControllerID(t_.getControllerId()); final Target t = targetManagement.findTargetByControllerID(t_.getControllerId());
assertThat(t.getAssignedDistributionSet()).isEqualTo(dsA); assertThat(t.getAssignedDistributionSet()).isEqualTo(dsA);
assertThat( assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo()
targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo() .getInstalledDistributionSet()).isNull();
.getInstalledDistributionSet()).isNull();
assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo().getUpdateStatus()) assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo().getUpdateStatus())
.isEqualTo(TargetUpdateStatus.PENDING); .isEqualTo(TargetUpdateStatus.PENDING);
@@ -640,8 +635,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
"blabla alles gut"); "blabla alles gut");
} }
// try to delete again // try to delete again
distributionSetManagement.deleteDistributionSet(deploymentResult.getDistributionSetIDs().toArray( distributionSetManagement.deleteDistributionSet(deploymentResult.getDistributionSetIDs()
new Long[deploymentResult.getDistributionSetIDs().size()])); .toArray(new Long[deploymentResult.getDistributionSetIDs().size()]));
// verify that the result is the same, even though distributionSet dsA // verify that the result is the same, even though distributionSet dsA
// has been installed // has been installed
// successfully and no activeAction is referring to created distribution // successfully and no activeAction is referring to created distribution
@@ -676,8 +671,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
assertThat(targetManagement.countTargetsAll()).isNotZero(); assertThat(targetManagement.countTargetsAll()).isNotZero();
assertThat(actionStatusRepository.count()).isNotZero(); assertThat(actionStatusRepository.count()).isNotZero();
targetManagement.deleteTargets(deploymentResult.getUndeployedTargetIDs().toArray( targetManagement
new Long[noOfUndeployedTargets])); .deleteTargets(deploymentResult.getUndeployedTargetIDs().toArray(new Long[noOfUndeployedTargets]));
targetManagement.deleteTargets(deploymentResult.getDeployedTargetIDs().toArray(new Long[noOfDeployedTargets])); targetManagement.deleteTargets(deploymentResult.getDeployedTargetIDs().toArray(new Long[noOfDeployedTargets]));
assertThat(targetManagement.countTargetsAll()).isZero(); assertThat(targetManagement.countTargetsAll()).isZero();
@@ -768,8 +763,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
targ = targs.iterator().next(); targ = targs.iterator().next();
assertEquals(1, deploymentManagement.findActiveActionsByTarget(targ).size()); assertEquals(1, deploymentManagement.findActiveActionsByTarget(targ).size());
assertEquals(TargetUpdateStatus.PENDING, targetManagement.findTargetByControllerID(targ.getControllerId()) assertEquals(TargetUpdateStatus.PENDING,
.getTargetInfo().getUpdateStatus()); targetManagement.findTargetByControllerID(targ.getControllerId()).getTargetInfo().getUpdateStatus());
assertEquals(dsB, targ.getAssignedDistributionSet()); assertEquals(dsB, targ.getAssignedDistributionSet());
assertEquals(dsA.getId(), targetManagement.findTargetByControllerIDWithDetails(targ.getControllerId()) assertEquals(dsA.getId(), targetManagement.findTargetByControllerIDWithDetails(targ.getControllerId())
.getTargetInfo().getInstalledDistributionSet().getId()); .getTargetInfo().getInstalledDistributionSet().getId());
@@ -808,8 +803,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
final DistributionSet ds = TestDataUtil.generateDistributionSet("a", softwareManagement, final DistributionSet ds = TestDataUtil.generateDistributionSet("a", softwareManagement,
distributionSetManagement); distributionSetManagement);
// assign ds to create an action // assign ds to create an action
final DistributionSetAssignmentResult assignDistributionSet = deploymentManagement.assignDistributionSet( final DistributionSetAssignmentResult assignDistributionSet = deploymentManagement
ds.getId(), ActionType.SOFT, Action.NO_FORCE_TIME, target.getControllerId()); .assignDistributionSet(ds.getId(), ActionType.SOFT, Action.NO_FORCE_TIME, target.getControllerId());
final Action action = assignDistributionSet.getActions().get(0); final Action action = assignDistributionSet.getActions().get(0);
// verify preparation // verify preparation
Action findAction = deploymentManagement.findAction(action.getId()); Action findAction = deploymentManagement.findAction(action.getId());
@@ -831,8 +826,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
final DistributionSet ds = TestDataUtil.generateDistributionSet("a", softwareManagement, final DistributionSet ds = TestDataUtil.generateDistributionSet("a", softwareManagement,
distributionSetManagement); distributionSetManagement);
// assign ds to create an action // assign ds to create an action
final DistributionSetAssignmentResult assignDistributionSet = deploymentManagement.assignDistributionSet( final DistributionSetAssignmentResult assignDistributionSet = deploymentManagement
ds.getId(), ActionType.FORCED, Action.NO_FORCE_TIME, target.getControllerId()); .assignDistributionSet(ds.getId(), ActionType.FORCED, Action.NO_FORCE_TIME, target.getControllerId());
final Action action = assignDistributionSet.getActions().get(0); final Action action = assignDistributionSet.getActions().get(0);
// verify perparation // verify perparation
Action findAction = deploymentManagement.findAction(action.getId()); Action findAction = deploymentManagement.findAction(action.getId());
@@ -874,11 +869,11 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
private DeploymentResult prepareComplexRepo(final String undeployedTargetPrefix, final int noOfUndeployedTargets, private DeploymentResult prepareComplexRepo(final String undeployedTargetPrefix, final int noOfUndeployedTargets,
final String deployedTargetPrefix, final int noOfDeployedTargets, final int noOfDistributionSets, final String deployedTargetPrefix, final int noOfDeployedTargets, final int noOfDistributionSets,
final String distributionSetPrefix) { final String distributionSetPrefix) {
final Iterable<Target> nakedTargets = targetManagement.createTargets(TestDataUtil.buildTargetFixtures( final Iterable<Target> nakedTargets = targetManagement.createTargets(
noOfUndeployedTargets, undeployedTargetPrefix, "first description")); TestDataUtil.buildTargetFixtures(noOfUndeployedTargets, undeployedTargetPrefix, "first description"));
List<Target> deployedTargets = targetManagement.createTargets(TestDataUtil.buildTargetFixtures( List<Target> deployedTargets = targetManagement.createTargets(
noOfDeployedTargets, deployedTargetPrefix, "first description")); TestDataUtil.buildTargetFixtures(noOfDeployedTargets, deployedTargetPrefix, "first description"));
// creating 10 DistributionSets // creating 10 DistributionSets
final List<DistributionSet> dsList = TestDataUtil.generateDistributionSets(distributionSetPrefix, final List<DistributionSet> dsList = TestDataUtil.generateDistributionSets(distributionSetPrefix,
@@ -907,10 +902,10 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
found = true; found = true;
final List<Action> activeActionsByTarget = deploymentManagement.findActiveActionsByTarget(myt); final List<Action> activeActionsByTarget = deploymentManagement.findActiveActionsByTarget(myt);
assertThat(activeActionsByTarget).isNotEmpty(); assertThat(activeActionsByTarget).isNotEmpty();
assertThat(event.getActionId()).isEqualTo(activeActionsByTarget.get(0).getId()).as( assertThat(event.getActionId()).isEqualTo(activeActionsByTarget.get(0).getId())
"Action id in database and event do not match"); .as("Action id in database and event do not match");
assertThat(event.getSoftwareModules()).containsOnly( assertThat(event.getSoftwareModules())
ds.getModules().toArray(new SoftwareModule[ds.getModules().size()])); .containsOnly(ds.getModules().toArray(new SoftwareModule[ds.getModules().size()]));
} }
} }
assertThat(found).isTrue().as("No event found for controller " + myt.getControllerId()); assertThat(found).isTrue().as("No event found for controller " + myt.getControllerId());
@@ -1078,8 +1073,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
latch.await(timeout, unit); latch.await(timeout, unit);
final List<TargetAssignDistributionSetEvent> handledEvents = new LinkedList<TargetAssignDistributionSetEvent>( final List<TargetAssignDistributionSetEvent> handledEvents = new LinkedList<TargetAssignDistributionSetEvent>(
events); events);
assertThat(handledEvents).hasSize(expectedNumberOfEvents).as( assertThat(handledEvents).hasSize(expectedNumberOfEvents)
"Did not receive the expected amount of events (" + expectedNumberOfEvents .as("Did not receive the expected amount of events (" + expectedNumberOfEvents
+ ") within timeout. Received events are " + handledEvents); + ") within timeout. Received events are " + handledEvents);
return handledEvents; return handledEvents;
} }
@@ -1106,8 +1101,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest {
throws InterruptedException { throws InterruptedException {
latch.await(timeout, unit); latch.await(timeout, unit);
final List<CancelTargetAssignmentEvent> handledEvents = new LinkedList<CancelTargetAssignmentEvent>(events); final List<CancelTargetAssignmentEvent> handledEvents = new LinkedList<CancelTargetAssignmentEvent>(events);
assertThat(handledEvents).hasSize(expectedNumberOfEvents).as( assertThat(handledEvents).hasSize(expectedNumberOfEvents)
"Did not receive the expected amount of events (" + expectedNumberOfEvents .as("Did not receive the expected amount of events (" + expectedNumberOfEvents
+ ") within timeout. Received events are " + handledEvents); + ") within timeout. Received events are " + handledEvents);
return handledEvents; return handledEvents;
} }

View File

@@ -96,8 +96,8 @@ public class SystemManagementTest extends AbstractIntegrationTestWithMongoDB {
new TenantUsage("tenant1").setTargets(100).setActions(200)); new TenantUsage("tenant1").setTargets(100).setActions(200));
} }
private byte[] createTestTenantsForSystemStatistics(final int tenants, final int artifactSize, final int targets, final int updates) private byte[] createTestTenantsForSystemStatistics(final int tenants, final int artifactSize, final int targets,
throws Exception { final int updates) throws Exception {
final Random randomgen = new Random(); final Random randomgen = new Random();
final byte random[] = new byte[artifactSize]; final byte random[] = new byte[artifactSize];
randomgen.nextBytes(random); randomgen.nextBytes(random);

View File

@@ -25,12 +25,12 @@ import org.eclipse.hawkbit.repository.model.TargetTag;
import org.junit.Test; import org.junit.Test;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.google.common.collect.Lists;
import ru.yandex.qatools.allure.annotations.Description; import ru.yandex.qatools.allure.annotations.Description;
import ru.yandex.qatools.allure.annotations.Features; import ru.yandex.qatools.allure.annotations.Features;
import ru.yandex.qatools.allure.annotations.Stories; import ru.yandex.qatools.allure.annotations.Stories;
import com.google.common.collect.Lists;
/** /**
* Test class for {@link TagManagement}. * Test class for {@link TagManagement}.
* *
@@ -90,32 +90,34 @@ public class TagManagementTest extends AbstractIntegrationTest {
DistributionSetFilterBuilder distributionSetFilterBuilder; DistributionSetFilterBuilder distributionSetFilterBuilder;
// search for not deleted // search for not deleted
distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(true).setTagNames( distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(true)
Lists.newArrayList(tagA.getName())); .setTagNames(Lists.newArrayList(tagA.getName()));
assertEquals(dsAs.spliterator().getExactSizeIfKnown() + dsABs.spliterator().getExactSizeIfKnown() assertEquals(
+ dsACs.spliterator().getExactSizeIfKnown() + dsABCs.spliterator().getExactSizeIfKnown(), dsAs.spliterator().getExactSizeIfKnown() + dsABs.spliterator().getExactSizeIfKnown()
+ dsACs.spliterator().getExactSizeIfKnown() + dsABCs.spliterator().getExactSizeIfKnown(),
distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build()) distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build())
.getTotalElements()); .getTotalElements());
distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(true).setTagNames( distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(true)
Lists.newArrayList(tagB.getName())); .setTagNames(Lists.newArrayList(tagB.getName()));
assertEquals(dsBs.spliterator().getExactSizeIfKnown() + dsABs.spliterator().getExactSizeIfKnown() assertEquals(
+ dsBCs.spliterator().getExactSizeIfKnown() + dsABCs.spliterator().getExactSizeIfKnown(), dsBs.spliterator().getExactSizeIfKnown() + dsABs.spliterator().getExactSizeIfKnown()
+ dsBCs.spliterator().getExactSizeIfKnown() + dsABCs.spliterator().getExactSizeIfKnown(),
distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build()) distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build())
.getTotalElements()); .getTotalElements());
distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(true).setTagNames( distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(true)
Lists.newArrayList(tagC.getName())); .setTagNames(Lists.newArrayList(tagC.getName()));
assertEquals(dsCs.spliterator().getExactSizeIfKnown() + dsACs.spliterator().getExactSizeIfKnown() assertEquals(
+ dsBCs.spliterator().getExactSizeIfKnown() + dsABCs.spliterator().getExactSizeIfKnown(), dsCs.spliterator().getExactSizeIfKnown() + dsACs.spliterator().getExactSizeIfKnown()
+ dsBCs.spliterator().getExactSizeIfKnown() + dsABCs.spliterator().getExactSizeIfKnown(),
distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build()) distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build())
.getTotalElements()); .getTotalElements());
distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(true).setTagNames( distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(true)
Lists.newArrayList(tagX.getName())); .setTagNames(Lists.newArrayList(tagX.getName()));
assertEquals(0, assertEquals(0, distributionSetManagement
distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build()) .findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build()).getTotalElements());
.getTotalElements());
assertEquals(5, distributionSetTagRepository.findAll().spliterator().getExactSizeIfKnown()); assertEquals(5, distributionSetTagRepository.findAll().spliterator().getExactSizeIfKnown());
@@ -127,23 +129,24 @@ public class TagManagementTest extends AbstractIntegrationTest {
tagManagement.deleteDistributionSetTag(tagB.getName()); tagManagement.deleteDistributionSetTag(tagB.getName());
assertEquals(2, distributionSetTagRepository.findAll().spliterator().getExactSizeIfKnown()); assertEquals(2, distributionSetTagRepository.findAll().spliterator().getExactSizeIfKnown());
distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(Boolean.TRUE).setTagNames( distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(Boolean.TRUE)
Lists.newArrayList(tagA.getName())); .setTagNames(Lists.newArrayList(tagA.getName()));
assertEquals(dsAs.spliterator().getExactSizeIfKnown() + dsABs.spliterator().getExactSizeIfKnown() assertEquals(
+ dsACs.spliterator().getExactSizeIfKnown() + dsABCs.spliterator().getExactSizeIfKnown(), dsAs.spliterator().getExactSizeIfKnown() + dsABs.spliterator().getExactSizeIfKnown()
+ dsACs.spliterator().getExactSizeIfKnown() + dsABCs.spliterator().getExactSizeIfKnown(),
distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build()) distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build())
.getTotalElements()); .getTotalElements());
distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(Boolean.TRUE).setTagNames( distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(Boolean.TRUE)
Lists.newArrayList(tagB.getName())); .setTagNames(Lists.newArrayList(tagB.getName()));
assertEquals(0, assertEquals(0, distributionSetManagement
distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build()) .findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build()).getTotalElements());
.getTotalElements());
distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(Boolean.TRUE).setTagNames( distributionSetFilterBuilder = getDistributionSetFilterBuilder().setIsComplete(Boolean.TRUE)
Lists.newArrayList(tagC.getName())); .setTagNames(Lists.newArrayList(tagC.getName()));
assertEquals(dsCs.spliterator().getExactSizeIfKnown() + dsACs.spliterator().getExactSizeIfKnown() assertEquals(
+ dsBCs.spliterator().getExactSizeIfKnown() + dsABCs.spliterator().getExactSizeIfKnown(), dsCs.spliterator().getExactSizeIfKnown() + dsACs.spliterator().getExactSizeIfKnown()
+ dsBCs.spliterator().getExactSizeIfKnown() + dsABCs.spliterator().getExactSizeIfKnown(),
distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build()) distributionSetManagement.findDistributionSetsByFilters(pageReq, distributionSetFilterBuilder.build())
.getTotalElements()); .getTotalElements());
} }
@@ -206,8 +209,8 @@ public class TagManagementTest extends AbstractIntegrationTest {
// check // check
for (final Target target : targetRepository.findAll()) { for (final Target target : targetRepository.findAll()) {
assertThat(targetManagement.findTargetByControllerID(target.getControllerId()).getTags()).doesNotContain( assertThat(targetManagement.findTargetByControllerID(target.getControllerId()).getTags())
toDelete); .doesNotContain(toDelete);
} }
assertThat(targetTagRepository.findOne(toDelete.getId())).isNull(); assertThat(targetTagRepository.findOne(toDelete.getId())).isNull();
assertThat(tagManagement.findAllTargetTags()).hasSize(19); assertThat(tagManagement.findAllTargetTags()).hasSize(19);
@@ -278,8 +281,8 @@ public class TagManagementTest extends AbstractIntegrationTest {
final DistributionSetTag toDelete = tags.iterator().next(); final DistributionSetTag toDelete = tags.iterator().next();
for (final DistributionSet set : distributionSetRepository.findAll()) { for (final DistributionSet set : distributionSetRepository.findAll()) {
assertThat(distributionSetManagement.findDistributionSetByIdWithDetails(set.getId()).getTags()).contains( assertThat(distributionSetManagement.findDistributionSetByIdWithDetails(set.getId()).getTags())
toDelete); .contains(toDelete);
} }
// delete // delete
@@ -359,8 +362,8 @@ public class TagManagementTest extends AbstractIntegrationTest {
final List<DistributionSet> sets = TestDataUtil.generateDistributionSets(20, softwareManagement, final List<DistributionSet> sets = TestDataUtil.generateDistributionSets(20, softwareManagement,
distributionSetManagement); distributionSetManagement);
final Iterable<DistributionSetTag> tags = tagManagement.createDistributionSetTags(TestDataUtil final Iterable<DistributionSetTag> tags = tagManagement
.generateDistributionSetTags(20)); .createDistributionSetTags(TestDataUtil.generateDistributionSetTags(20));
tags.forEach(tag -> distributionSetManagement.toggleTagAssignment(sets, tag)); tags.forEach(tag -> distributionSetManagement.toggleTagAssignment(sets, tag));

View File

@@ -73,8 +73,8 @@ public class TargetFilterQueryManagenmentTest extends AbstractIntegrationTest {
final String newQuery = "status==UNKNOWN"; final String newQuery = "status==UNKNOWN";
targetFilterQuery.setQuery(newQuery); targetFilterQuery.setQuery(newQuery);
targetFilterQueryManagement.updateTargetFilterQuery(targetFilterQuery); targetFilterQueryManagement.updateTargetFilterQuery(targetFilterQuery);
assertEquals("Returns updated target filter query", newQuery, targetFilterQueryManagement assertEquals("Returns updated target filter query", newQuery,
.findTargetFilterQueryByName(filterName).getQuery()); targetFilterQueryManagement.findTargetFilterQueryByName(filterName).getQuery());
} }

View File

@@ -44,12 +44,12 @@ import org.eclipse.hawkbit.repository.model.TargetTag;
import org.junit.Test; import org.junit.Test;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import com.google.common.collect.Iterables;
import ru.yandex.qatools.allure.annotations.Description; import ru.yandex.qatools.allure.annotations.Description;
import ru.yandex.qatools.allure.annotations.Features; import ru.yandex.qatools.allure.annotations.Features;
import ru.yandex.qatools.allure.annotations.Stories; import ru.yandex.qatools.allure.annotations.Stories;
import com.google.common.collect.Iterables;
@Features("Component Tests - Repository") @Features("Component Tests - Repository")
@Stories("Target Management") @Stories("Target Management")
public class TargetManagementTest extends AbstractIntegrationTest { public class TargetManagementTest extends AbstractIntegrationTest {
@@ -158,8 +158,8 @@ public class TargetManagementTest extends AbstractIntegrationTest {
final Action action = result.getActions().get(0); final Action action = result.getActions().get(0);
action.setStatus(Status.FINISHED); action.setStatus(Status.FINISHED);
controllerManagament.addUpdateActionStatus(new ActionStatus(action, Status.FINISHED, controllerManagament.addUpdateActionStatus(
System.currentTimeMillis(), "message"), action); new ActionStatus(action, Status.FINISHED, System.currentTimeMillis(), "message"), action);
deploymentManagement.assignDistributionSet(set2.getId(), "4711"); deploymentManagement.assignDistributionSet(set2.getId(), "4711");
target = targetManagement.findTargetByControllerIDWithDetails("4711"); target = targetManagement.findTargetByControllerIDWithDetails("4711");
@@ -341,8 +341,8 @@ public class TargetManagementTest extends AbstractIntegrationTest {
targetManagement.deleteTargets(deletedTargetIDs); targetManagement.deleteTargets(deletedTargetIDs);
allFound = targetManagement.findTargetsAll(new PageRequest(0, 200)).getContent(); allFound = targetManagement.findTargetsAll(new PageRequest(0, 200)).getContent();
assertEquals(firstSaved.spliterator().getExactSizeIfKnown() - nr2Del, allFound.spliterator() assertEquals(firstSaved.spliterator().getExactSizeIfKnown() - nr2Del,
.getExactSizeIfKnown()); allFound.spliterator().getExactSizeIfKnown());
// verify that all undeleted are still found // verify that all undeleted are still found
assertThat(allFound).doesNotContain(deletedTargets); assertThat(allFound).doesNotContain(deletedTargets);
@@ -351,8 +351,8 @@ public class TargetManagementTest extends AbstractIntegrationTest {
@Test @Test
@Description("Stores target attributes and verfies existence in the repository.") @Description("Stores target attributes and verfies existence in the repository.")
public void savingTargetControllerAttributes() { public void savingTargetControllerAttributes() {
Iterable<Target> ts = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(100, "myCtrlID", Iterable<Target> ts = targetManagement
"first description")); .createTargets(TestDataUtil.buildTargetFixtures(100, "myCtrlID", "first description"));
final Map<String, String> attribs = new HashMap<String, String>(); final Map<String, String> attribs = new HashMap<String, String>();
attribs.put("a.b.c", "abc"); attribs.put("a.b.c", "abc");
@@ -438,8 +438,8 @@ public class TargetManagementTest extends AbstractIntegrationTest {
final Target tNoAttrib = targetManagement.findTargetByControllerID(tNoAttribl.getControllerId()); final Target tNoAttrib = targetManagement.findTargetByControllerID(tNoAttribl.getControllerId());
if (tNoAttrib.getControllerId().equals(target.getControllerId())) { if (tNoAttrib.getControllerId().equals(target.getControllerId())) {
assertThat(target.getTargetInfo().getControllerAttributes().keySet().toArray()).doesNotContain( assertThat(target.getTargetInfo().getControllerAttributes().keySet().toArray())
attribs2Del.toArray()); .doesNotContain(attribs2Del.toArray());
continue restTarget_; continue restTarget_;
} }
} }
@@ -452,14 +452,14 @@ public class TargetManagementTest extends AbstractIntegrationTest {
Target t1 = TestDataUtil.buildTargetFixture("id-1", "blablub"); Target t1 = TestDataUtil.buildTargetFixture("id-1", "blablub");
final int noT2Tags = 4; final int noT2Tags = 4;
final int noT1Tags = 3; final int noT1Tags = 3;
final List<TargetTag> t1Tags = tagManagement.createTargetTags(TestDataUtil.buildTargetTagFixtures(noT1Tags, final List<TargetTag> t1Tags = tagManagement
"tag1")); .createTargetTags(TestDataUtil.buildTargetTagFixtures(noT1Tags, "tag1"));
t1.getTags().addAll(t1Tags); t1.getTags().addAll(t1Tags);
t1 = targetManagement.createTarget(t1); t1 = targetManagement.createTarget(t1);
Target t2 = TestDataUtil.buildTargetFixture("id-2", "blablub"); Target t2 = TestDataUtil.buildTargetFixture("id-2", "blablub");
final List<TargetTag> t2Tags = tagManagement.createTargetTags(TestDataUtil.buildTargetTagFixtures(noT2Tags, final List<TargetTag> t2Tags = tagManagement
"tag2")); .createTargetTags(TestDataUtil.buildTargetTagFixtures(noT2Tags, "tag2"));
t2.getTags().addAll(t2Tags); t2.getTags().addAll(t2Tags);
t2 = targetManagement.createTarget(t2); t2 = targetManagement.createTarget(t2);
@@ -475,18 +475,18 @@ public class TargetManagementTest extends AbstractIntegrationTest {
@Test @Test
@Description("Tests the assigment of tags to multiple targets.") @Description("Tests the assigment of tags to multiple targets.")
public void targetTagBulkAssignments() { public void targetTagBulkAssignments() {
final List<Target> tagATargets = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(10, final List<Target> tagATargets = targetManagement
"tagATargets", "first description")); .createTargets(TestDataUtil.buildTargetFixtures(10, "tagATargets", "first description"));
final List<Target> tagBTargets = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(10, final List<Target> tagBTargets = targetManagement
"tagBTargets", "first description")); .createTargets(TestDataUtil.buildTargetFixtures(10, "tagBTargets", "first description"));
final List<Target> tagCTargets = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(10, final List<Target> tagCTargets = targetManagement
"tagCTargets", "first description")); .createTargets(TestDataUtil.buildTargetFixtures(10, "tagCTargets", "first description"));
final List<Target> tagABTargets = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(10, final List<Target> tagABTargets = targetManagement
"tagABTargets", "first description")); .createTargets(TestDataUtil.buildTargetFixtures(10, "tagABTargets", "first description"));
final List<Target> tagABCTargets = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(10, final List<Target> tagABCTargets = targetManagement
"tagABCTargets", "first description")); .createTargets(TestDataUtil.buildTargetFixtures(10, "tagABCTargets", "first description"));
final TargetTag tagA = tagManagement.createTargetTag(new TargetTag("A")); final TargetTag tagA = tagManagement.createTargetTag(new TargetTag("A"));
final TargetTag tagB = tagManagement.createTargetTag(new TargetTag("B")); final TargetTag tagB = tagManagement.createTargetTag(new TargetTag("B"));
@@ -534,12 +534,12 @@ public class TargetManagementTest extends AbstractIntegrationTest {
checkTargetHasNotTags(tagCTargets, tagA, tagB); checkTargetHasNotTags(tagCTargets, tagA, tagB);
// check again target lists refreshed from DB // check again target lists refreshed from DB
assertThat(targetManagement.countTargetByFilters(null, null, null, Boolean.FALSE, "A")).isEqualTo( assertThat(targetManagement.countTargetByFilters(null, null, null, Boolean.FALSE, "A"))
targetWithTagA.size()); .isEqualTo(targetWithTagA.size());
assertThat(targetManagement.countTargetByFilters(null, null, null, Boolean.FALSE, "B")).isEqualTo( assertThat(targetManagement.countTargetByFilters(null, null, null, Boolean.FALSE, "B"))
targetWithTagB.size()); .isEqualTo(targetWithTagB.size());
assertThat(targetManagement.countTargetByFilters(null, null, null, Boolean.FALSE, "C")).isEqualTo( assertThat(targetManagement.countTargetByFilters(null, null, null, Boolean.FALSE, "C"))
targetWithTagC.size()); .isEqualTo(targetWithTagC.size());
} }
@Test @Test
@@ -549,21 +549,21 @@ public class TargetManagementTest extends AbstractIntegrationTest {
final TargetTag targTagB = tagManagement.createTargetTag(new TargetTag("Targ-B-Tag")); final TargetTag targTagB = tagManagement.createTargetTag(new TargetTag("Targ-B-Tag"));
final TargetTag targTagC = tagManagement.createTargetTag(new TargetTag("Targ-C-Tag")); final TargetTag targTagC = tagManagement.createTargetTag(new TargetTag("Targ-C-Tag"));
final List<Target> targAs = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(25, "target-id-A", final List<Target> targAs = targetManagement
"first description")); .createTargets(TestDataUtil.buildTargetFixtures(25, "target-id-A", "first description"));
final List<Target> targBs = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(20, "target-id-B", final List<Target> targBs = targetManagement
"first description")); .createTargets(TestDataUtil.buildTargetFixtures(20, "target-id-B", "first description"));
final List<Target> targCs = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(15, "target-id-C", final List<Target> targCs = targetManagement
"first description")); .createTargets(TestDataUtil.buildTargetFixtures(15, "target-id-C", "first description"));
final List<Target> targABs = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(12, final List<Target> targABs = targetManagement
"target-id-AB", "first description")); .createTargets(TestDataUtil.buildTargetFixtures(12, "target-id-AB", "first description"));
final List<Target> targACs = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(13, final List<Target> targACs = targetManagement
"target-id-AC", "first description")); .createTargets(TestDataUtil.buildTargetFixtures(13, "target-id-AC", "first description"));
final List<Target> targBCs = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(7, "target-id-BC", final List<Target> targBCs = targetManagement
"first description")); .createTargets(TestDataUtil.buildTargetFixtures(7, "target-id-BC", "first description"));
final List<Target> targABCs = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(17, final List<Target> targABCs = targetManagement
"target-id-ABC", "first description")); .createTargets(TestDataUtil.buildTargetFixtures(17, "target-id-ABC", "first description"));
targetManagement.toggleTagAssignment(targAs, targTagA); targetManagement.toggleTagAssignment(targAs, targTagA);
targetManagement.toggleTagAssignment(targABs, targTagA); targetManagement.toggleTagAssignment(targABs, targTagA);
@@ -610,29 +610,27 @@ public class TargetManagementTest extends AbstractIntegrationTest {
public void findTargetsByControllerIDsWithTags() { public void findTargetsByControllerIDsWithTags() {
final TargetTag targTagA = tagManagement.createTargetTag(new TargetTag("Targ-A-Tag")); final TargetTag targTagA = tagManagement.createTargetTag(new TargetTag("Targ-A-Tag"));
final List<Target> targAs = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(25, "target-id-A", final List<Target> targAs = targetManagement
"first description")); .createTargets(TestDataUtil.buildTargetFixtures(25, "target-id-A", "first description"));
targetManagement.toggleTagAssignment(targAs, targTagA); targetManagement.toggleTagAssignment(targAs, targTagA);
assertThat( assertThat(targetManagement.findTargetsByControllerIDsWithTags(
targetManagement.findTargetsByControllerIDsWithTags(targAs.stream() targAs.stream().map(target -> target.getControllerId()).collect(Collectors.toList()))).hasSize(25);
.map(target -> target.getControllerId()).collect(Collectors.toList()))).hasSize(25);
// no lazy loading exception and tag correctly assigned // no lazy loading exception and tag correctly assigned
assertThat( assertThat(targetManagement
targetManagement .findTargetsByControllerIDsWithTags(
.findTargetsByControllerIDsWithTags( targAs.stream().map(target -> target.getControllerId()).collect(Collectors.toList()))
targAs.stream().map(target -> target.getControllerId()).collect(Collectors.toList())) .stream().map(target -> target.getTags().contains(targTagA)).collect(Collectors.toList()))
.stream().map(target -> target.getTags().contains(targTagA)).collect(Collectors.toList())) .containsOnly(true);
.containsOnly(true);
} }
@Test @Test
@Description("Test the optimized quere for retrieving all ID/name pairs of targets.") @Description("Test the optimized quere for retrieving all ID/name pairs of targets.")
public void findAllTargetIdNamePaiss() { public void findAllTargetIdNamePaiss() {
final List<Target> targAs = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(25, "target-id-A", final List<Target> targAs = targetManagement
"first description")); .createTargets(TestDataUtil.buildTargetFixtures(25, "target-id-A", "first description"));
final String[] createdTargetIds = targAs.stream().map(t -> t.getControllerId()) final String[] createdTargetIds = targAs.stream().map(t -> t.getControllerId())
.toArray(size -> new String[size]); .toArray(size -> new String[size]);
@@ -648,15 +646,15 @@ public class TargetManagementTest extends AbstractIntegrationTest {
public void findTargetsWithNoTag() { public void findTargetsWithNoTag() {
final TargetTag targTagA = tagManagement.createTargetTag(new TargetTag("Targ-A-Tag")); final TargetTag targTagA = tagManagement.createTargetTag(new TargetTag("Targ-A-Tag"));
final List<Target> targAs = targetManagement.createTargets(TestDataUtil.buildTargetFixtures(25, "target-id-A", final List<Target> targAs = targetManagement
"first description")); .createTargets(TestDataUtil.buildTargetFixtures(25, "target-id-A", "first description"));
targetManagement.toggleTagAssignment(targAs, targTagA); targetManagement.toggleTagAssignment(targAs, targTagA);
targetManagement.createTargets(TestDataUtil.buildTargetFixtures(25, "target-id-B", "first description")); targetManagement.createTargets(TestDataUtil.buildTargetFixtures(25, "target-id-B", "first description"));
final String[] tagNames = null; final String[] tagNames = null;
final List<Target> targetsListWithNoTag = targetManagement.findTargetByFilters(new PageRequest(0, 500), null, final List<Target> targetsListWithNoTag = targetManagement
null, null, Boolean.TRUE, tagNames).getContent(); .findTargetByFilters(new PageRequest(0, 500), null, null, null, Boolean.TRUE, tagNames).getContent();
// Total targets // Total targets
assertEquals(50, targetManagement.findAllTargetIds().size()); assertEquals(50, targetManagement.findAllTargetIds().size());

View File

@@ -138,13 +138,11 @@ public class ArtifactStoreController implements EnvironmentAware {
private Action checkAndReportDownloadByTarget(final HttpServletRequest request, final String targetid, private Action checkAndReportDownloadByTarget(final HttpServletRequest request, final String targetid,
final LocalArtifact artifact) { final LocalArtifact artifact) {
final Target target = controllerManagement.updateLastTargetQuery( final Target target = controllerManagement.updateLastTargetQuery(targetid, IpUtil.getClientIpFromRequest(
targetid, request, environment.getProperty("security.rp.remote_ip_header", String.class, "X-Forwarded-For")));
IpUtil.getClientIpFromRequest(request,
environment.getProperty("security.rp.remote_ip_header", String.class, "X-Forwarded-For")));
final Action action = controllerManagement.getActionForDownloadByTargetAndSoftwareModule( final Action action = controllerManagement
target.getControllerId(), artifact.getSoftwareModule()); .getActionForDownloadByTargetAndSoftwareModule(target.getControllerId(), artifact.getSoftwareModule());
final String range = request.getHeader("Range"); final String range = request.getHeader("Range");
final ActionStatus actionStatus = new ActionStatus(); final ActionStatus actionStatus = new ActionStatus();

View File

@@ -163,9 +163,10 @@ public class RootController implements EnvironmentAware {
System.currentTimeMillis(), IpUtil.getClientIpFromRequest(request, requestHeader)); System.currentTimeMillis(), IpUtil.getClientIpFromRequest(request, requestHeader));
} }
return new ResponseEntity<>(DataConversionHelper.fromTarget(target, return new ResponseEntity<>(
controllerManagement.findActionByTargetAndActive(target), controllerPollProperties.getPollingTime(), DataConversionHelper.fromTarget(target, controllerManagement.findActionByTargetAndActive(target),
tenantAware), HttpStatus.OK); controllerPollProperties.getPollingTime(), tenantAware),
HttpStatus.OK);
} }
/** /**
@@ -220,8 +221,8 @@ public class RootController implements EnvironmentAware {
private Action checkAndLogDownload(final HttpServletRequest request, final Target target, private Action checkAndLogDownload(final HttpServletRequest request, final Target target,
final SoftwareModule module) { final SoftwareModule module) {
final Action action = controllerManagement.getActionForDownloadByTargetAndSoftwareModule( final Action action = controllerManagement
target.getControllerId(), module); .getActionForDownloadByTargetAndSoftwareModule(target.getControllerId(), module);
final String range = request.getHeader("Range"); final String range = request.getHeader("Range");
final ActionStatus statusMessage = new ActionStatus(); final ActionStatus statusMessage = new ActionStatus();
@@ -274,8 +275,8 @@ public class RootController implements EnvironmentAware {
} }
try { try {
DataConversionHelper.writeMD5FileResponse(fileName, response, module.getLocalArtifactByFilename(fileName) DataConversionHelper.writeMD5FileResponse(fileName, response,
.get()); module.getLocalArtifactByFilename(fileName).get());
} catch (final IOException e) { } catch (final IOException e) {
LOG.error("Failed to stream MD5 File", e); LOG.error("Failed to stream MD5 File", e);
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
@@ -301,7 +302,8 @@ public class RootController implements EnvironmentAware {
* the HTTP request injected by spring * the HTTP request injected by spring
* @return the response * @return the response
*/ */
@RequestMapping(value = "/{targetid}/" + ControllerConstants.DEPLOYMENT_BASE_ACTION + "/{actionId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/{targetid}/" + ControllerConstants.DEPLOYMENT_BASE_ACTION
+ "/{actionId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<DeploymentBase> getControllerBasedeploymentAction( public ResponseEntity<DeploymentBase> getControllerBasedeploymentAction(
@PathVariable @NotEmpty final String targetid, @PathVariable @NotEmpty final Long actionId, @PathVariable @NotEmpty final String targetid, @PathVariable @NotEmpty final Long actionId,
@RequestParam(value = "c", required = false, defaultValue = "-1") final int resource, @RequestParam(value = "c", required = false, defaultValue = "-1") final int resource,
@@ -323,8 +325,8 @@ public class RootController implements EnvironmentAware {
final HandlingType handlingType = action.isForce() ? HandlingType.FORCED : HandlingType.ATTEMPT; final HandlingType handlingType = action.isForce() ? HandlingType.FORCED : HandlingType.ATTEMPT;
final DeploymentBase base = new DeploymentBase(Long.toString(action.getId()), new Deployment(handlingType, final DeploymentBase base = new DeploymentBase(Long.toString(action.getId()),
handlingType, chunks)); new Deployment(handlingType, handlingType, chunks));
LOG.debug("Found an active UpdateAction for target {}. returning deyploment: {}", targetid, base); LOG.debug("Found an active UpdateAction for target {}. returning deyploment: {}", targetid, base);
@@ -388,8 +390,8 @@ public class RootController implements EnvironmentAware {
} }
private ActionStatus generateUpdateStatus(final ActionFeedback feedback, final String targetid, private ActionStatus generateUpdateStatus(final ActionFeedback feedback, final String targetid, final Long actionid,
final Long actionid, final Action action) { final Action action) {
final ActionStatus actionStatus = new ActionStatus(); final ActionStatus actionStatus = new ActionStatus();
actionStatus.setAction(action); actionStatus.setAction(action);
@@ -430,8 +432,8 @@ public class RootController implements EnvironmentAware {
private static void handleDefaultUpdateStatus(final ActionFeedback feedback, final String targetid, private static void handleDefaultUpdateStatus(final ActionFeedback feedback, final String targetid,
final Long actionid, final ActionStatus actionStatus) { final Long actionid, final ActionStatus actionStatus) {
LOG.debug("Controller reported intermediate status (actionid: {}, targetid: {}) as we got {} report.", LOG.debug("Controller reported intermediate status (actionid: {}, targetid: {}) as we got {} report.", actionid,
actionid, targetid, feedback.getStatus().getExecution()); targetid, feedback.getStatus().getExecution());
actionStatus.setStatus(Status.RUNNING); actionStatus.setStatus(Status.RUNNING);
// MECS-400: we should not use the unstructed message list for // MECS-400: we should not use the unstructed message list for
// the server comment on the status. // the server comment on the status.
@@ -463,7 +465,8 @@ public class RootController implements EnvironmentAware {
* *
* @return status of the request * @return status of the request
*/ */
@RequestMapping(value = "/{targetid}/" + ControllerConstants.CONFIG_DATA_ACTION, method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/{targetid}/"
+ ControllerConstants.CONFIG_DATA_ACTION, method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Void> putConfigData(@Valid @RequestBody final ConfigData configData, public ResponseEntity<Void> putConfigData(@Valid @RequestBody final ConfigData configData,
@PathVariable final String targetid, final HttpServletRequest request) { @PathVariable final String targetid, final HttpServletRequest request) {
controllerManagement.updateLastTargetQuery(targetid, IpUtil.getClientIpFromRequest(request, requestHeader)); controllerManagement.updateLastTargetQuery(targetid, IpUtil.getClientIpFromRequest(request, requestHeader));
@@ -485,7 +488,8 @@ public class RootController implements EnvironmentAware {
* *
* @return the {@link Cancel} response * @return the {@link Cancel} response
*/ */
@RequestMapping(value = "/{targetid}/" + ControllerConstants.CANCEL_ACTION + "/{actionId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/{targetid}/" + ControllerConstants.CANCEL_ACTION
+ "/{actionId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Cancel> getControllerCancelAction(@PathVariable @NotEmpty final String targetid, public ResponseEntity<Cancel> getControllerCancelAction(@PathVariable @NotEmpty final String targetid,
@PathVariable @NotEmpty final Long actionId, final HttpServletRequest request) { @PathVariable @NotEmpty final Long actionId, final HttpServletRequest request) {
LOG.debug("getControllerCancelAction({})", targetid); LOG.debug("getControllerCancelAction({})", targetid);
@@ -500,8 +504,8 @@ public class RootController implements EnvironmentAware {
} }
if (action.isCancelingOrCanceled()) { if (action.isCancelingOrCanceled()) {
final Cancel cancel = new Cancel(String.valueOf(action.getId()), new CancelActionToStop( final Cancel cancel = new Cancel(String.valueOf(action.getId()),
String.valueOf(action.getId()))); new CancelActionToStop(String.valueOf(action.getId())));
LOG.debug("Found an active CancelAction for target {}. returning cancel: {}", targetid, cancel); LOG.debug("Found an active CancelAction for target {}. returning cancel: {}", targetid, cancel);
@@ -553,8 +557,8 @@ public class RootController implements EnvironmentAware {
return new ResponseEntity<>(HttpStatus.NOT_FOUND); return new ResponseEntity<>(HttpStatus.NOT_FOUND);
} }
controllerManagement.addCancelActionStatus( controllerManagement
generateActionCancelStatus(feedback, target, feedback.getId(), action), action); .addCancelActionStatus(generateActionCancelStatus(feedback, target, feedback.getId(), action), action);
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }

View File

@@ -57,8 +57,8 @@ public final class DistributionSetMapper {
final DistributionSetType module = distributionSetManagement final DistributionSetType module = distributionSetManagement
.findDistributionSetTypeByKey(distributionSetTypekey); .findDistributionSetTypeByKey(distributionSetTypekey);
if (module == null) { if (module == null) {
throw new EntityNotFoundException("DistributionSetType with key {" + distributionSetTypekey throw new EntityNotFoundException(
+ "} does not exist"); "DistributionSetType with key {" + distributionSetTypekey + "} does not exist");
} }
return module; return module;
} }
@@ -108,18 +108,18 @@ public final class DistributionSetMapper {
} }
if (dsRest.getApplication() != null) { if (dsRest.getApplication() != null) {
result.addModule(findSoftwareModuleWithExceptionIfNotFound(dsRest.getApplication().getId(), result.addModule(
softwareManagement)); findSoftwareModuleWithExceptionIfNotFound(dsRest.getApplication().getId(), softwareManagement));
} }
if (dsRest.getRuntime() != null) { if (dsRest.getRuntime() != null) {
result.addModule(findSoftwareModuleWithExceptionIfNotFound(dsRest.getRuntime().getId(), softwareManagement)); result.addModule(
findSoftwareModuleWithExceptionIfNotFound(dsRest.getRuntime().getId(), softwareManagement));
} }
if (dsRest.getModules() != null) { if (dsRest.getModules() != null) {
dsRest.getModules().forEach( dsRest.getModules().forEach(module -> result
module -> result.addModule(findSoftwareModuleWithExceptionIfNotFound(module.getId(), .addModule(findSoftwareModuleWithExceptionIfNotFound(module.getId(), softwareManagement)));
softwareManagement)));
} }
return result; return result;
@@ -163,23 +163,22 @@ public final class DistributionSetMapper {
response.setComplete(distributionSet.isComplete()); response.setComplete(distributionSet.isComplete());
response.setType(distributionSet.getType().getKey()); response.setType(distributionSet.getType().getKey());
distributionSet.getModules().forEach( distributionSet.getModules()
module -> response.getModules().add(SoftwareModuleMapper.toResponse(module))); .forEach(module -> response.getModules().add(SoftwareModuleMapper.toResponse(module)));
response.setRequiredMigrationStep(distributionSet.isRequiredMigrationStep()); response.setRequiredMigrationStep(distributionSet.isRequiredMigrationStep());
response.add(linkTo(methodOn(DistributionSetResource.class).getDistributionSet(response.getDsId())).withRel( response.add(
"self")); linkTo(methodOn(DistributionSetResource.class).getDistributionSet(response.getDsId())).withRel("self"));
response.add(linkTo( response.add(linkTo(
methodOn(DistributionSetTypeResource.class).getDistributionSetType(distributionSet.getType().getId())) methodOn(DistributionSetTypeResource.class).getDistributionSetType(distributionSet.getType().getId()))
.withRel("type")); .withRel("type"));
response.add(linkTo( response.add(linkTo(methodOn(DistributionSetResource.class).getMetadata(response.getDsId(),
methodOn(DistributionSetResource.class).getMetadata(response.getDsId(), Integer.parseInt(RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET),
Integer.parseInt(RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET), Integer.parseInt(RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT), null, null))
Integer.parseInt(RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT), null, null)).withRel( .withRel("metadata"));
"metadata"));
return response; return response;
} }

View File

@@ -13,8 +13,6 @@ import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager;
import org.eclipse.hawkbit.repository.DeploymentManagement; import org.eclipse.hawkbit.repository.DeploymentManagement;
import org.eclipse.hawkbit.repository.DistributionSetAssignmentResult; import org.eclipse.hawkbit.repository.DistributionSetAssignmentResult;
import org.eclipse.hawkbit.repository.DistributionSetFields; import org.eclipse.hawkbit.repository.DistributionSetFields;
@@ -92,7 +90,6 @@ public class DistributionSetResource {
@Autowired @Autowired
private DistributionSetManagement distributionSetManagement; private DistributionSetManagement distributionSetManagement;
/** /**
* Handles the GET request of retrieving all {@link DistributionSet}s within * Handles the GET request of retrieving all {@link DistributionSet}s within
* SP. * SP.

View File

@@ -11,8 +11,6 @@ package org.eclipse.hawkbit.rest.resource;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager;
import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.DistributionSetManagement;
import org.eclipse.hawkbit.repository.TagFields; import org.eclipse.hawkbit.repository.TagFields;
import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TagManagement;
@@ -60,7 +58,6 @@ public class DistributionSetTagResource {
@Autowired @Autowired
private DistributionSetManagement distributionSetManagement; private DistributionSetManagement distributionSetManagement;
/** /**
* Handles the GET request of retrieving all DistributionSet tags. * Handles the GET request of retrieving all DistributionSet tags.
* *
@@ -100,8 +97,8 @@ public class DistributionSetTagResource {
countTargetsAll = tagManagement.countTargetTags(); countTargetsAll = tagManagement.countTargetTags();
} else { } else {
final Page<DistributionSetTag> findTargetPage = tagManagement.findAllDistributionSetTags( final Page<DistributionSetTag> findTargetPage = tagManagement
RSQLUtility.parse(rsqlParam, TagFields.class), pageable); .findAllDistributionSetTags(RSQLUtility.parse(rsqlParam, TagFields.class), pageable);
countTargetsAll = findTargetPage.getTotalElements(); countTargetsAll = findTargetPage.getTotalElements();
findTargetsAll = findTargetPage; findTargetsAll = findTargetPage;
@@ -139,13 +136,13 @@ public class DistributionSetTagResource {
* with status code 201 - Created. The Response Body are the created * with status code 201 - Created. The Response Body are the created
* distribution set tags but without ResponseBody. * distribution set tags but without ResponseBody.
*/ */
@RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { @RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json",
"application/hal+json", MediaType.APPLICATION_JSON_VALUE }) MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<TagsRest> createDistributionSetTags(@RequestBody final List<TagRequestBodyPut> tags) { public ResponseEntity<TagsRest> createDistributionSetTags(@RequestBody final List<TagRequestBodyPut> tags) {
LOG.debug("creating {} ds tags", tags.size()); LOG.debug("creating {} ds tags", tags.size());
final List<DistributionSetTag> createdTags = tagManagement.createDistributionSetTags(TagMapper final List<DistributionSetTag> createdTags = tagManagement
.mapDistributionSetTagFromRequest(tags)); .createDistributionSetTags(TagMapper.mapDistributionSetTagFromRequest(tags));
return new ResponseEntity<>(TagMapper.toResponseDistributionSetTag(createdTags), HttpStatus.CREATED); return new ResponseEntity<>(TagMapper.toResponseDistributionSetTag(createdTags), HttpStatus.CREATED);
} }
@@ -245,14 +242,14 @@ public class DistributionSetTagResource {
final DistributionSetTag tag = findDistributionTagById(distributionsetTagId); final DistributionSetTag tag = findDistributionTagById(distributionsetTagId);
final DistributionSetTagAssigmentResult assigmentResult = distributionSetManagement.toggleTagAssignment( final DistributionSetTagAssigmentResult assigmentResult = distributionSetManagement
findDistributionSetIds(assignedDSRequestBodies), tag.getName()); .toggleTagAssignment(findDistributionSetIds(assignedDSRequestBodies), tag.getName());
final DistributionSetTagAssigmentResultRest tagAssigmentResultRest = new DistributionSetTagAssigmentResultRest(); final DistributionSetTagAssigmentResultRest tagAssigmentResultRest = new DistributionSetTagAssigmentResultRest();
tagAssigmentResultRest.setAssignedDistributionSets(DistributionSetMapper tagAssigmentResultRest.setAssignedDistributionSets(
.toResponseDistributionSets(assigmentResult.getAssignedDs())); DistributionSetMapper.toResponseDistributionSets(assigmentResult.getAssignedDs()));
tagAssigmentResultRest.setUnassignedDistributionSets(DistributionSetMapper tagAssigmentResultRest.setUnassignedDistributionSets(
.toResponseDistributionSets(assigmentResult.getUnassignedDs())); DistributionSetMapper.toResponseDistributionSets(assigmentResult.getUnassignedDs()));
LOG.debug("Toggled assignedDS {} and unassignedDS{}", assigmentResult.getAssigned(), LOG.debug("Toggled assignedDS {} and unassignedDS{}", assigmentResult.getAssigned(),
assigmentResult.getUnassigned()); assigmentResult.getUnassigned());
@@ -279,8 +276,8 @@ public class DistributionSetTagResource {
LOG.debug("Assign DistributionSet {} for ds tag {}", assignedDSRequestBodies.size(), distributionsetTagId); LOG.debug("Assign DistributionSet {} for ds tag {}", assignedDSRequestBodies.size(), distributionsetTagId);
final DistributionSetTag tag = findDistributionTagById(distributionsetTagId); final DistributionSetTag tag = findDistributionTagById(distributionsetTagId);
final List<DistributionSet> assignedDs = distributionSetManagement.assignTag( final List<DistributionSet> assignedDs = distributionSetManagement
findDistributionSetIds(assignedDSRequestBodies), tag); .assignTag(findDistributionSetIds(assignedDSRequestBodies), tag);
LOG.debug("Assignd DistributionSet {}", assignedDs.size()); LOG.debug("Assignd DistributionSet {}", assignedDs.size());
return new ResponseEntity<>(DistributionSetMapper.toResponseDistributionSets(assignedDs), HttpStatus.OK); return new ResponseEntity<>(DistributionSetMapper.toResponseDistributionSets(assignedDs), HttpStatus.OK);
} }

View File

@@ -10,8 +10,6 @@ package org.eclipse.hawkbit.rest.resource;
import java.util.List; import java.util.List;
import javax.persistence.EntityManager;
import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.DistributionSetManagement;
import org.eclipse.hawkbit.repository.DistributionSetTypeFields; import org.eclipse.hawkbit.repository.DistributionSetTypeFields;
import org.eclipse.hawkbit.repository.SoftwareManagement; import org.eclipse.hawkbit.repository.SoftwareManagement;

View File

@@ -60,7 +60,8 @@ public final class SoftwareModuleMapper {
smsRest.getName(), smsRest.getVersion(), smsRest.getDescription(), smsRest.getVendor()); smsRest.getName(), smsRest.getVersion(), smsRest.getDescription(), smsRest.getVendor());
} }
static List<SoftwareModuleMetadata> fromRequestSwMetadata(final SoftwareModule sw, final List<MetadataRest> metadata) { static List<SoftwareModuleMetadata> fromRequestSwMetadata(final SoftwareModule sw,
final List<MetadataRest> metadata) {
final List<SoftwareModuleMetadata> mappedList = new ArrayList<>(metadata.size()); final List<SoftwareModuleMetadata> mappedList = new ArrayList<>(metadata.size());
for (final MetadataRest metadataRest : metadata) { for (final MetadataRest metadataRest : metadata) {
if (metadataRest.getKey() == null) { if (metadataRest.getKey() == null) {
@@ -141,20 +142,19 @@ public final class SoftwareModuleMapper {
response.setType(baseSofwareModule.getType().getKey()); response.setType(baseSofwareModule.getType().getKey());
response.setVendor(baseSofwareModule.getVendor()); response.setVendor(baseSofwareModule.getVendor());
response.add(linkTo(methodOn(SoftwareModuleResource.class).getArtifacts(response.getModuleId())).withRel( response.add(linkTo(methodOn(SoftwareModuleResource.class).getArtifacts(response.getModuleId()))
RestConstants.SOFTWAREMODULE_V1_ARTIFACT)); .withRel(RestConstants.SOFTWAREMODULE_V1_ARTIFACT));
response.add(linkTo(methodOn(SoftwareModuleResource.class).getSoftwareModule(response.getModuleId())).withRel( response.add(linkTo(methodOn(SoftwareModuleResource.class).getSoftwareModule(response.getModuleId()))
"self")); .withRel("self"));
response.add(linkTo( response.add(linkTo(
methodOn(SoftwareModuleTypeResource.class).getSoftwareModuleType(baseSofwareModule.getType().getId())) methodOn(SoftwareModuleTypeResource.class).getSoftwareModuleType(baseSofwareModule.getType().getId()))
.withRel(RestConstants.SOFTWAREMODULE_V1_TYPE)); .withRel(RestConstants.SOFTWAREMODULE_V1_TYPE));
response.add(linkTo( response.add(linkTo(methodOn(SoftwareModuleResource.class).getMetadata(response.getModuleId(),
methodOn(SoftwareModuleResource.class).getMetadata(response.getModuleId(), Integer.parseInt(RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET),
Integer.parseInt(RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET), Integer.parseInt(RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT), null, null))
Integer.parseInt(RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT), null, null)).withRel( .withRel("metadata"));
"metadata"));
return response; return response;
} }
@@ -178,13 +178,12 @@ public final class SoftwareModuleMapper {
RestModelMapper.mapBaseToBase(artifactRest, artifact); RestModelMapper.mapBaseToBase(artifactRest, artifact);
artifactRest.add(linkTo( artifactRest.add(linkTo(methodOn(SoftwareModuleResource.class).getArtifact(artifact.getSoftwareModule().getId(),
methodOn(SoftwareModuleResource.class).getArtifact(artifact.getSoftwareModule().getId(), artifact.getId())).withRel("self"));
artifact.getId())).withRel("self"));
if (artifact instanceof LocalArtifact) { if (artifact instanceof LocalArtifact) {
artifactRest.add(linkTo( artifactRest.add(
methodOn(SoftwareModuleResource.class).downloadArtifact(artifact.getSoftwareModule().getId(), linkTo(methodOn(SoftwareModuleResource.class).downloadArtifact(artifact.getSoftwareModule().getId(),
artifact.getId(), null, null)).withRel("download")); artifact.getId(), null, null)).withRel("download"));
} }

View File

@@ -261,8 +261,8 @@ public class SoftwareModuleResource {
final Slice<SoftwareModule> findModulesAll; final Slice<SoftwareModule> findModulesAll;
Long countModulesAll; Long countModulesAll;
if (rsqlParam != null) { if (rsqlParam != null) {
findModulesAll = softwareManagement.findSoftwareModulesByPredicate( findModulesAll = softwareManagement
RSQLUtility.parse(rsqlParam, SoftwareModuleFields.class), pageable); .findSoftwareModulesByPredicate(RSQLUtility.parse(rsqlParam, SoftwareModuleFields.class), pageable);
countModulesAll = ((Page<SoftwareModule>) findModulesAll).getTotalElements(); countModulesAll = ((Page<SoftwareModule>) findModulesAll).getTotalElements();
} else { } else {
findModulesAll = softwareManagement.findSoftwareModulesAll(pageable); findModulesAll = softwareManagement.findSoftwareModulesAll(pageable);
@@ -303,8 +303,8 @@ public class SoftwareModuleResource {
* failure the JsonResponseExceptionHandler is handling the * failure the JsonResponseExceptionHandler is handling the
* response. * response.
*/ */
@RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { @RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json",
"application/hal+json", MediaType.APPLICATION_JSON_VALUE }) MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<SoftwareModulesRest> createSoftwareModules( public ResponseEntity<SoftwareModulesRest> createSoftwareModules(
@RequestBody final List<SoftwareModuleRequestBodyPost> softwareModules) { @RequestBody final List<SoftwareModuleRequestBodyPost> softwareModules) {
LOG.debug("creating {} softwareModules", softwareModules.size()); LOG.debug("creating {} softwareModules", softwareModules.size());
@@ -383,8 +383,7 @@ public class SoftwareModuleResource {
*/ */
@RequestMapping(method = RequestMethod.GET, value = "/{softwareModuleId}/metadata", produces = { @RequestMapping(method = RequestMethod.GET, value = "/{softwareModuleId}/metadata", produces = {
MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }) MediaType.APPLICATION_JSON_VALUE, "application/hal+json" })
public ResponseEntity<MetadataRestPageList> getMetadata( public ResponseEntity<MetadataRestPageList> getMetadata(@PathVariable final Long softwareModuleId,
@PathVariable final Long softwareModuleId,
@RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam, @RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam,
@RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam, @RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam,
@RequestParam(value = RestConstants.REQUEST_PARAMETER_SORTING, required = false) final String sortParam, @RequestParam(value = RestConstants.REQUEST_PARAMETER_SORTING, required = false) final String sortParam,
@@ -407,8 +406,10 @@ public class SoftwareModuleResource {
metaDataPage = softwareManagement.findSoftwareModuleMetadataBySoftwareModuleId(softwareModuleId, pageable); metaDataPage = softwareManagement.findSoftwareModuleMetadataBySoftwareModuleId(softwareModuleId, pageable);
} }
return new ResponseEntity<>(new MetadataRestPageList(SoftwareModuleMapper.toResponseSwMetadata(metaDataPage return new ResponseEntity<>(
.getContent()), metaDataPage.getTotalElements()), HttpStatus.OK); new MetadataRestPageList(SoftwareModuleMapper.toResponseSwMetadata(metaDataPage.getContent()),
metaDataPage.getTotalElements()),
HttpStatus.OK);
} }
/** /**
@@ -421,7 +422,8 @@ public class SoftwareModuleResource {
* @return status OK if get request is successful with the value of the meta * @return status OK if get request is successful with the value of the meta
* data * data
*/ */
@RequestMapping(method = RequestMethod.GET, value = "/{softwareModuleId}/metadata/{metadataKey}", produces = { MediaType.APPLICATION_JSON_VALUE }) @RequestMapping(method = RequestMethod.GET, value = "/{softwareModuleId}/metadata/{metadataKey}", produces = {
MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<MetadataRest> getMetadataValue(@PathVariable final Long softwareModuleId, public ResponseEntity<MetadataRest> getMetadataValue(@PathVariable final Long softwareModuleId,
@PathVariable final String metadataKey) { @PathVariable final String metadataKey) {
// check if distribution set exists otherwise throw exception // check if distribution set exists otherwise throw exception
@@ -481,8 +483,8 @@ public class SoftwareModuleResource {
* the created meta data * the created meta data
*/ */
@RequestMapping(method = RequestMethod.POST, value = "/{softwareModuleId}/metadata", consumes = { @RequestMapping(method = RequestMethod.POST, value = "/{softwareModuleId}/metadata", consumes = {
MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }, produces = { MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE,
"application/hal+json" }) "application/hal+json" }, produces = { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" })
public ResponseEntity<List<MetadataRest>> createMetadata(@PathVariable final Long softwareModuleId, public ResponseEntity<List<MetadataRest>> createMetadata(@PathVariable final Long softwareModuleId,
@RequestBody final List<MetadataRest> metadataRest) { @RequestBody final List<MetadataRest> metadataRest) {
// check if software module exists otherwise throw exception immediately // check if software module exists otherwise throw exception immediately
@@ -495,7 +497,8 @@ public class SoftwareModuleResource {
} }
private SoftwareModule findSoftwareModuleWithExceptionIfNotFound(final Long softwareModuleId, final Long artifactId) { private SoftwareModule findSoftwareModuleWithExceptionIfNotFound(final Long softwareModuleId,
final Long artifactId) {
final SoftwareModule module = softwareManagement.findSoftwareModuleById(softwareModuleId); final SoftwareModule module = softwareManagement.findSoftwareModuleById(softwareModuleId);
if (module == null) { if (module == null) {
throw new EntityNotFoundException("SoftwareModule with Id {" + softwareModuleId + "} does not exist"); throw new EntityNotFoundException("SoftwareModule with Id {" + softwareModuleId + "} does not exist");

View File

@@ -86,8 +86,8 @@ public class SystemManagementResource {
.setOverallArtifactVolumeInBytes(report.getOverallArtifactVolumeInBytes()) .setOverallArtifactVolumeInBytes(report.getOverallArtifactVolumeInBytes())
.setOverallTargets(report.getOverallTargets()).setOverallTenants(report.getTenants().size()); .setOverallTargets(report.getOverallTargets()).setOverallTenants(report.getTenants().size());
result.setTenantStats(report.getTenants().stream().map(tenant -> convertTenant(tenant)) result.setTenantStats(
.collect(Collectors.toList())); report.getTenants().stream().map(tenant -> convertTenant(tenant)).collect(Collectors.toList()));
return ResponseEntity.ok(result); return ResponseEntity.ok(result);
} }

View File

@@ -55,8 +55,8 @@ final class TagMapper {
response.add(linkTo(methodOn(TargetTagResource.class).getTargetTag(targetTag.getId())).withRel("self")); response.add(linkTo(methodOn(TargetTagResource.class).getTargetTag(targetTag.getId())).withRel("self"));
response.add(linkTo(methodOn(TargetTagResource.class).getAssignedTargets(targetTag.getId())).withRel( response.add(linkTo(methodOn(TargetTagResource.class).getAssignedTargets(targetTag.getId()))
"assignedTargets")); .withRel("assignedTargets"));
return response; return response;
} }
@@ -83,13 +83,13 @@ final class TagMapper {
mapTag(response, distributionSetTag); mapTag(response, distributionSetTag);
response.add(linkTo( response.add(
methodOn(DistributionSetTagResource.class).getDistributionSetTag(distributionSetTag.getId())).withRel( linkTo(methodOn(DistributionSetTagResource.class).getDistributionSetTag(distributionSetTag.getId()))
"self")); .withRel("self"));
response.add(linkTo( response.add(linkTo(
methodOn(DistributionSetTagResource.class).getAssignedDistributionSets(distributionSetTag.getId())) methodOn(DistributionSetTagResource.class).getAssignedDistributionSets(distributionSetTag.getId()))
.withRel("assignedDistributionSets")); .withRel("assignedDistributionSets"));
return response; return response;
} }
@@ -97,8 +97,8 @@ final class TagMapper {
static List<TargetTag> mapTargeTagFromRequest(final Iterable<TagRequestBodyPut> tags) { static List<TargetTag> mapTargeTagFromRequest(final Iterable<TagRequestBodyPut> tags) {
final List<TargetTag> mappedList = new ArrayList<>(); final List<TargetTag> mappedList = new ArrayList<>();
for (final TagRequestBodyPut targetTagRest : tags) { for (final TagRequestBodyPut targetTagRest : tags) {
mappedList.add(new TargetTag(targetTagRest.getName(), targetTagRest.getDescription(), targetTagRest mappedList.add(
.getColour())); new TargetTag(targetTagRest.getName(), targetTagRest.getDescription(), targetTagRest.getColour()));
} }
return mappedList; return mappedList;
} }

View File

@@ -54,13 +54,12 @@ final public class TargetMapper {
.withRel(RestConstants.TARGET_V1_ASSIGNED_DISTRIBUTION_SET)); .withRel(RestConstants.TARGET_V1_ASSIGNED_DISTRIBUTION_SET));
response.add(linkTo(methodOn(TargetResource.class).getInstalledDistributionSet(response.getControllerId())) response.add(linkTo(methodOn(TargetResource.class).getInstalledDistributionSet(response.getControllerId()))
.withRel(RestConstants.TARGET_V1_INSTALLED_DISTRIBUTION_SET)); .withRel(RestConstants.TARGET_V1_INSTALLED_DISTRIBUTION_SET));
response.add(linkTo(methodOn(TargetResource.class).getAttributes(response.getControllerId())).withRel( response.add(linkTo(methodOn(TargetResource.class).getAttributes(response.getControllerId()))
RestConstants.TARGET_V1_ATTRIBUTES)); .withRel(RestConstants.TARGET_V1_ATTRIBUTES));
response.add(linkTo( response.add(linkTo(methodOn(TargetResource.class).getActionHistory(response.getControllerId(), 0,
methodOn(TargetResource.class).getActionHistory(response.getControllerId(), 0, RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT_VALUE,
RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT_VALUE, ActionFields.ID.getFieldName() + ":" + SortDirection.DESC, null))
ActionFields.ID.getFieldName() + ":" + SortDirection.DESC, null)).withRel( .withRel(RestConstants.TARGET_V1_ACTIONS));
RestConstants.TARGET_V1_ACTIONS));
} }
/** /**
@@ -75,10 +74,10 @@ final public class TargetMapper {
final PollStatus pollStatus = target.getTargetInfo().getPollStatus(); final PollStatus pollStatus = target.getTargetInfo().getPollStatus();
if (pollStatus != null) { if (pollStatus != null) {
final PollStatusRest pollStatusRest = new PollStatusRest(); final PollStatusRest pollStatusRest = new PollStatusRest();
pollStatusRest.setLastRequestAt(Date.from( pollStatusRest.setLastRequestAt(
pollStatus.getLastPollDate().atZone(ZoneId.systemDefault()).toInstant()).getTime()); Date.from(pollStatus.getLastPollDate().atZone(ZoneId.systemDefault()).toInstant()).getTime());
pollStatusRest.setNextExpectedRequestAt(Date.from( pollStatusRest.setNextExpectedRequestAt(
pollStatus.getNextPollDate().atZone(ZoneId.systemDefault()).toInstant()).getTime()); Date.from(pollStatus.getNextPollDate().atZone(ZoneId.systemDefault()).toInstant()).getTime());
pollStatusRest.setOverdue(pollStatus.isOverdue()); pollStatusRest.setOverdue(pollStatus.isOverdue());
targetRest.setPollStatus(pollStatusRest); targetRest.setPollStatus(pollStatusRest);
} }

View File

@@ -134,8 +134,8 @@ public class TargetResource {
final Slice<Target> findTargetsAll; final Slice<Target> findTargetsAll;
final Long countTargetsAll; final Long countTargetsAll;
if (rsqlParam != null) { if (rsqlParam != null) {
final Page<Target> findTargetPage = targetManagement.findTargetsAll( final Page<Target> findTargetPage = targetManagement
RSQLUtility.parse(rsqlParam, TargetFields.class), pageable); .findTargetsAll(RSQLUtility.parse(rsqlParam, TargetFields.class), pageable);
countTargetsAll = findTargetPage.getTotalElements(); countTargetsAll = findTargetPage.getTotalElements();
findTargetsAll = findTargetPage; findTargetsAll = findTargetPage;
} else { } else {
@@ -159,8 +159,8 @@ public class TargetResource {
* entities. In any failure the JsonResponseExceptionHandler is * entities. In any failure the JsonResponseExceptionHandler is
* handling the response. * handling the response.
*/ */
@RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { @RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json",
"application/hal+json", MediaType.APPLICATION_JSON_VALUE }) MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<TargetsRest> createTargets(@RequestBody final List<TargetRequestBody> targets) { public ResponseEntity<TargetsRest> createTargets(@RequestBody final List<TargetRequestBody> targets) {
LOG.debug("creating {} targets", targets.size()); LOG.debug("creating {} targets", targets.size());
final Iterable<Target> createdTargets = targetManagement.createTargets(TargetMapper.fromRequest(targets)); final Iterable<Target> createdTargets = targetManagement.createTargets(TargetMapper.fromRequest(targets));
@@ -267,8 +267,7 @@ public class TargetResource {
*/ */
@RequestMapping(method = RequestMethod.GET, value = "/{targetId}/actions", produces = { "application/hal+json", @RequestMapping(method = RequestMethod.GET, value = "/{targetId}/actions", produces = { "application/hal+json",
MediaType.APPLICATION_JSON_VALUE }) MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<ActionPagedList> getActionHistory( public ResponseEntity<ActionPagedList> getActionHistory(@PathVariable final String targetId,
@PathVariable final String targetId,
@RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam, @RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam,
@RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam, @RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam,
@RequestParam(value = RestConstants.REQUEST_PARAMETER_SORTING, required = false) final String sortParam, @RequestParam(value = RestConstants.REQUEST_PARAMETER_SORTING, required = false) final String sortParam,
@@ -292,8 +291,9 @@ public class TargetResource {
totalActionCount = deploymentManagement.countActionsByTarget(foundTarget); totalActionCount = deploymentManagement.countActionsByTarget(foundTarget);
} }
return new ResponseEntity<>(new ActionPagedList(TargetMapper.toResponse(targetId, activeActions.getContent()), return new ResponseEntity<>(
totalActionCount), HttpStatus.OK); new ActionPagedList(TargetMapper.toResponse(targetId, activeActions.getContent()), totalActionCount),
HttpStatus.OK);
} }
/** /**
@@ -308,7 +308,8 @@ public class TargetResource {
*/ */
@RequestMapping(method = RequestMethod.GET, value = "/{targetId}/actions/{actionId}", produces = { @RequestMapping(method = RequestMethod.GET, value = "/{targetId}/actions/{actionId}", produces = {
"application/hal+json", MediaType.APPLICATION_JSON_VALUE }) "application/hal+json", MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<ActionRest> getAction(@PathVariable final String targetId, @PathVariable final Long actionId) { public ResponseEntity<ActionRest> getAction(@PathVariable final String targetId,
@PathVariable final Long actionId) {
final Target target = findTargetWithExceptionIfNotFound(targetId); final Target target = findTargetWithExceptionIfNotFound(targetId);
final Action action = findActionWithExceptionIfNotFound(actionId); final Action action = findActionWithExceptionIfNotFound(actionId);
@@ -322,17 +323,16 @@ public class TargetResource {
if (!action.isCancelingOrCanceled()) { if (!action.isCancelingOrCanceled()) {
result.add(linkTo( result.add(linkTo(
methodOn(DistributionSetResource.class).getDistributionSet(action.getDistributionSet().getId())) methodOn(DistributionSetResource.class).getDistributionSet(action.getDistributionSet().getId()))
.withRel("distributionset")); .withRel("distributionset"));
} else if (action.isCancelingOrCanceled()) { } else if (action.isCancelingOrCanceled()) {
result.add(linkTo(methodOn(TargetResource.class).getAction(targetId, action.getId())).withRel( result.add(linkTo(methodOn(TargetResource.class).getAction(targetId, action.getId()))
RestConstants.TARGET_V1_CANCELED_ACTION)); .withRel(RestConstants.TARGET_V1_CANCELED_ACTION));
} }
result.add(linkTo( result.add(linkTo(methodOn(TargetResource.class).getActionStatusList(targetId, action.getId(), 0,
methodOn(TargetResource.class).getActionStatusList(targetId, action.getId(), 0, RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT_VALUE,
RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT_VALUE, ActionStatusFields.ID.getFieldName() + ":" + SortDirection.DESC))
ActionStatusFields.ID.getFieldName() + ":" + SortDirection.DESC)).withRel( .withRel(RestConstants.TARGET_V1_ACTION_STATUS));
RestConstants.TARGET_V1_ACTION_STATUS));
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
@@ -394,8 +394,7 @@ public class TargetResource {
*/ */
@RequestMapping(method = RequestMethod.GET, value = "/{targetId}/actions/{actionId}/status", produces = { @RequestMapping(method = RequestMethod.GET, value = "/{targetId}/actions/{actionId}/status", produces = {
"application/hal+json", MediaType.APPLICATION_JSON_VALUE }) "application/hal+json", MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<ActionStatusPagedList> getActionStatusList( public ResponseEntity<ActionStatusPagedList> getActionStatusList(@PathVariable final String targetId,
@PathVariable final String targetId,
@PathVariable final Long actionId, @PathVariable final Long actionId,
@RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam, @RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam,
@RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam, @RequestParam(value = RestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = RestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam,
@@ -416,8 +415,10 @@ public class TargetResource {
final Page<ActionStatus> statusList = deploymentManagement.findActionStatusMessagesByActionInDescOrder( final Page<ActionStatus> statusList = deploymentManagement.findActionStatusMessagesByActionInDescOrder(
new OffsetBasedPageRequest(sanitizedOffsetParam, sanitizedLimitParam, sorting), action, true); new OffsetBasedPageRequest(sanitizedOffsetParam, sanitizedLimitParam, sorting), action, true);
return new ResponseEntity<>(new ActionStatusPagedList(TargetMapper.toActionStatusRestResponse(action, return new ResponseEntity<>(
statusList.getContent()), statusList.getTotalElements()), HttpStatus.OK); new ActionStatusPagedList(TargetMapper.toActionStatusRestResponse(action, statusList.getContent()),
statusList.getTotalElements()),
HttpStatus.OK);
} }
@@ -436,8 +437,8 @@ public class TargetResource {
MediaType.APPLICATION_JSON_VALUE }) MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<DistributionSetRest> getAssignedDistributionSet(@PathVariable final String targetId) { public ResponseEntity<DistributionSetRest> getAssignedDistributionSet(@PathVariable final String targetId) {
final Target findTarget = findTargetWithExceptionIfNotFound(targetId); final Target findTarget = findTargetWithExceptionIfNotFound(targetId);
final DistributionSetRest distributionSetRest = DistributionSetMapper.toResponse(findTarget final DistributionSetRest distributionSetRest = DistributionSetMapper
.getAssignedDistributionSet()); .toResponse(findTarget.getAssignedDistributionSet());
final HttpStatus retStatus; final HttpStatus retStatus;
if (distributionSetRest == null) { if (distributionSetRest == null) {
retStatus = HttpStatus.NO_CONTENT; retStatus = HttpStatus.NO_CONTENT;
@@ -466,8 +467,8 @@ public class TargetResource {
@RequestBody final DistributionSetAssigmentRest dsId) { @RequestBody final DistributionSetAssigmentRest dsId) {
findTargetWithExceptionIfNotFound(targetId); findTargetWithExceptionIfNotFound(targetId);
final ActionType type = (dsId.getType() != null) ? RestResourceConversionHelper.convertActionType(dsId final ActionType type = (dsId.getType() != null)
.getType()) : ActionType.FORCED; ? RestResourceConversionHelper.convertActionType(dsId.getType()) : ActionType.FORCED;
final Iterator<Target> changed = deploymentManagement final Iterator<Target> changed = deploymentManagement
.assignDistributionSet(dsId.getId(), type, dsId.getForcetime(), targetId).getAssignedTargets() .assignDistributionSet(dsId.getId(), type, dsId.getForcetime(), targetId).getAssignedTargets()
.iterator(); .iterator();
@@ -496,8 +497,8 @@ public class TargetResource {
MediaType.APPLICATION_JSON_VALUE }) MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<DistributionSetRest> getInstalledDistributionSet(@PathVariable final String targetId) { public ResponseEntity<DistributionSetRest> getInstalledDistributionSet(@PathVariable final String targetId) {
final Target findTarget = findTargetWithExceptionIfNotFound(targetId); final Target findTarget = findTargetWithExceptionIfNotFound(targetId);
final DistributionSetRest distributionSetRest = DistributionSetMapper.toResponse(findTarget.getTargetInfo() final DistributionSetRest distributionSetRest = DistributionSetMapper
.getInstalledDistributionSet()); .toResponse(findTarget.getTargetInfo().getInstalledDistributionSet());
final HttpStatus retStatus; final HttpStatus retStatus;
if (distributionSetRest == null) { if (distributionSetRest == null) {
retStatus = HttpStatus.NO_CONTENT; retStatus = HttpStatus.NO_CONTENT;

View File

@@ -102,8 +102,8 @@ public class TargetTagResource {
countTargetsAll = tagManagement.countTargetTags(); countTargetsAll = tagManagement.countTargetTags();
} else { } else {
final Page<TargetTag> findTargetPage = tagManagement.findAllTargetTags( final Page<TargetTag> findTargetPage = tagManagement
RSQLUtility.parse(rsqlParam, TagFields.class), pageable); .findAllTargetTags(RSQLUtility.parse(rsqlParam, TagFields.class), pageable);
countTargetsAll = findTargetPage.getTotalElements(); countTargetsAll = findTargetPage.getTotalElements();
findTargetsAll = findTargetPage; findTargetsAll = findTargetPage;
@@ -140,8 +140,8 @@ public class TargetTagResource {
* with status code 201 - Created. The Response Body are the created * with status code 201 - Created. The Response Body are the created
* target tags but without ResponseBody. * target tags but without ResponseBody.
*/ */
@RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { @RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json",
"application/hal+json", MediaType.APPLICATION_JSON_VALUE }) MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<TagsRest> createTargetTags(@RequestBody final List<TagRequestBodyPut> tags) { public ResponseEntity<TagsRest> createTargetTags(@RequestBody final List<TagRequestBodyPut> tags) {
LOG.debug("creating {} target tags", tags.size()); LOG.debug("creating {} target tags", tags.size());
final List<TargetTag> createdTargetTags = tagManagement final List<TargetTag> createdTargetTags = tagManagement
@@ -233,8 +233,8 @@ public class TargetTagResource {
LOG.debug("Toggle Target assignment {} for target tag {}", assignedTargetRequestBodies.size(), targetTagId); LOG.debug("Toggle Target assignment {} for target tag {}", assignedTargetRequestBodies.size(), targetTagId);
final TargetTag targetTag = findTargetTagById(targetTagId); final TargetTag targetTag = findTargetTagById(targetTagId);
final TargetTagAssigmentResult assigmentResult = targetManagement.toggleTagAssignment( final TargetTagAssigmentResult assigmentResult = targetManagement
findTargetControllerIds(assignedTargetRequestBodies), targetTag.getName()); .toggleTagAssignment(findTargetControllerIds(assignedTargetRequestBodies), targetTag.getName());
final TargetTagAssigmentResultRest tagAssigmentResultRest = new TargetTagAssigmentResultRest(); final TargetTagAssigmentResultRest tagAssigmentResultRest = new TargetTagAssigmentResultRest();
tagAssigmentResultRest.setAssignedTargets(TargetMapper.toResponse(assigmentResult.getAssignedTargets())); tagAssigmentResultRest.setAssignedTargets(TargetMapper.toResponse(assigmentResult.getAssignedTargets()));
@@ -259,8 +259,8 @@ public class TargetTagResource {
@RequestBody final List<AssignedTargetRequestBody> assignedTargetRequestBodies) { @RequestBody final List<AssignedTargetRequestBody> assignedTargetRequestBodies) {
LOG.debug("Assign Targets {} for target tag {}", assignedTargetRequestBodies.size(), targetTagId); LOG.debug("Assign Targets {} for target tag {}", assignedTargetRequestBodies.size(), targetTagId);
final TargetTag targetTag = findTargetTagById(targetTagId); final TargetTag targetTag = findTargetTagById(targetTagId);
final List<Target> assignedTarget = targetManagement.assignTag( final List<Target> assignedTarget = targetManagement
findTargetControllerIds(assignedTargetRequestBodies), targetTag); .assignTag(findTargetControllerIds(assignedTargetRequestBodies), targetTag);
return new ResponseEntity<>(TargetMapper.toResponseWithLinksAndPollStatus(assignedTarget), HttpStatus.OK); return new ResponseEntity<>(TargetMapper.toResponseWithLinksAndPollStatus(assignedTarget), HttpStatus.OK);
} }

View File

@@ -147,8 +147,8 @@ public class RSQLUtilityTest {
when(baseSoftwareModuleRootMock.get("version")).thenReturn(baseSoftwareModuleRootMock); when(baseSoftwareModuleRootMock.get("version")).thenReturn(baseSoftwareModuleRootMock);
when(baseSoftwareModuleRootMock.getJavaType()).thenReturn((Class) SoftwareModule.class); when(baseSoftwareModuleRootMock.getJavaType()).thenReturn((Class) SoftwareModule.class);
when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class)); when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class));
when(criteriaBuilderMock.<String> greaterThanOrEqualTo(any(Expression.class), any(String.class))).thenReturn( when(criteriaBuilderMock.<String> greaterThanOrEqualTo(any(Expression.class), any(String.class)))
mock(Predicate.class)); .thenReturn(mock(Predicate.class));
// test // test
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock, RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock,
@@ -165,8 +165,8 @@ public class RSQLUtilityTest {
when(baseSoftwareModuleRootMock.get("name")).thenReturn(baseSoftwareModuleRootMock); when(baseSoftwareModuleRootMock.get("name")).thenReturn(baseSoftwareModuleRootMock);
when(baseSoftwareModuleRootMock.getJavaType()).thenReturn((Class) SoftwareModule.class); when(baseSoftwareModuleRootMock.getJavaType()).thenReturn((Class) SoftwareModule.class);
when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class)); when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class));
when(criteriaBuilderMock.<String> greaterThanOrEqualTo(any(Expression.class), any(String.class))).thenReturn( when(criteriaBuilderMock.<String> greaterThanOrEqualTo(any(Expression.class), any(String.class)))
mock(Predicate.class)); .thenReturn(mock(Predicate.class));
// test // test
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock, RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock,
criteriaQueryMock, criteriaBuilderMock); criteriaQueryMock, criteriaBuilderMock);
@@ -183,8 +183,8 @@ public class RSQLUtilityTest {
when(baseSoftwareModuleRootMock.get("name")).thenReturn(baseSoftwareModuleRootMock); when(baseSoftwareModuleRootMock.get("name")).thenReturn(baseSoftwareModuleRootMock);
when(baseSoftwareModuleRootMock.getJavaType()).thenReturn((Class) SoftwareModule.class); when(baseSoftwareModuleRootMock.getJavaType()).thenReturn((Class) SoftwareModule.class);
when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class)); when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class));
when(criteriaBuilderMock.<String> greaterThanOrEqualTo(any(Expression.class), any(String.class))).thenReturn( when(criteriaBuilderMock.<String> greaterThanOrEqualTo(any(Expression.class), any(String.class)))
mock(Predicate.class)); .thenReturn(mock(Predicate.class));
// test // test
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock, RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock,
criteriaQueryMock, criteriaBuilderMock); criteriaQueryMock, criteriaBuilderMock);
@@ -201,10 +201,10 @@ public class RSQLUtilityTest {
when(baseSoftwareModuleRootMock.get("name")).thenReturn(baseSoftwareModuleRootMock); when(baseSoftwareModuleRootMock.get("name")).thenReturn(baseSoftwareModuleRootMock);
when(baseSoftwareModuleRootMock.getJavaType()).thenReturn((Class) SoftwareModule.class); when(baseSoftwareModuleRootMock.getJavaType()).thenReturn((Class) SoftwareModule.class);
when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class)); when(criteriaBuilderMock.equal(any(Root.class), anyString())).thenReturn(mock(Predicate.class));
when(criteriaBuilderMock.<String> greaterThanOrEqualTo(any(Expression.class), any(String.class))).thenReturn( when(criteriaBuilderMock.<String> greaterThanOrEqualTo(any(Expression.class), any(String.class)))
mock(Predicate.class)); .thenReturn(mock(Predicate.class));
when(criteriaBuilderMock.upper(eq(pathOfString(baseSoftwareModuleRootMock)))).thenReturn( when(criteriaBuilderMock.upper(eq(pathOfString(baseSoftwareModuleRootMock))))
pathOfString(baseSoftwareModuleRootMock)); .thenReturn(pathOfString(baseSoftwareModuleRootMock));
// test // test
RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock, RSQLUtility.parse(correctRsql, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock,
criteriaQueryMock, criteriaBuilderMock); criteriaQueryMock, criteriaBuilderMock);

View File

@@ -52,8 +52,8 @@ public interface UserAuthenticationFilter {
* servlet exception * servlet exception
*/ */
void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
ServletException; throws IOException, ServletException;
/** /**
* @see Filter#destroy() * @see Filter#destroy()

View File

@@ -125,8 +125,8 @@ public class HawkbitUI extends DefaultHawkbitUI implements DetachListener {
if (userContext != null && userContext.getAuthentication() != null) { if (userContext != null && userContext.getAuthentication() != null) {
final Object tenantAuthenticationDetails = userContext.getAuthentication().getDetails(); final Object tenantAuthenticationDetails = userContext.getAuthentication().getDetails();
if (tenantAuthenticationDetails instanceof TenantAwareAuthenticationDetails) { if (tenantAuthenticationDetails instanceof TenantAwareAuthenticationDetails) {
return ((TenantAwareAuthenticationDetails) tenantAuthenticationDetails).getTenant().equalsIgnoreCase( return ((TenantAwareAuthenticationDetails) tenantAuthenticationDetails).getTenant()
event.getTenant()); .equalsIgnoreCase(event.getTenant());
} }
} }
return false; return false;
@@ -176,8 +176,8 @@ public class HawkbitUI extends DefaultHawkbitUI implements DetachListener {
contentVerticalLayout.setStyleName("main-content"); contentVerticalLayout.setStyleName("main-content");
contentVerticalLayout.setExpandRatio(content, 1.0F); contentVerticalLayout.setExpandRatio(content, 1.0F);
setContent(rootLayout); setContent(rootLayout);
final Resource resource = context.getResource("classpath:/VAADIN/themes/" + UI.getCurrent().getTheme() final Resource resource = context
+ "/layouts/footer.html"); .getResource("classpath:/VAADIN/themes/" + UI.getCurrent().getTheme() + "/layouts/footer.html");
try { try {
final CustomLayout customLayout = new CustomLayout(resource.getInputStream()); final CustomLayout customLayout = new CustomLayout(resource.getInputStream());
customLayout.setSizeUndefined(); customLayout.setSizeUndefined();

View File

@@ -125,10 +125,8 @@ public class ArtifactDetailsLayout extends VerticalLayout {
ui = UI.getCurrent(); ui = UI.getCurrent();
if (artifactUploadState.getSelectedBaseSoftwareModule().isPresent()) { if (artifactUploadState.getSelectedBaseSoftwareModule().isPresent()) {
final SoftwareModule selectedSoftwareModule = artifactUploadState.getSelectedBaseSoftwareModule().get(); final SoftwareModule selectedSoftwareModule = artifactUploadState.getSelectedBaseSoftwareModule().get();
populateArtifactDetails( populateArtifactDetails(selectedSoftwareModule.getId(), HawkbitCommonUtil
selectedSoftwareModule.getId(), .getFormattedNameVersion(selectedSoftwareModule.getName(), selectedSoftwareModule.getVersion()));
HawkbitCommonUtil.getFormattedNameVersion(selectedSoftwareModule.getName(),
selectedSoftwareModule.getVersion()));
} }
if (isMaximized()) { if (isMaximized()) {
maximizedArtifactDetailsView(); maximizedArtifactDetailsView();
@@ -264,10 +262,10 @@ public class ArtifactDetailsLayout extends VerticalLayout {
public Button generateCell(final Table source, final Object itemId, final Object columnId) { public Button generateCell(final Table source, final Object itemId, final Object columnId) {
final String fileName = (String) table.getContainerDataSource().getItem(itemId) final String fileName = (String) table.getContainerDataSource().getItem(itemId)
.getItemProperty(PROVIDED_FILE_NAME).getValue(); .getItemProperty(PROVIDED_FILE_NAME).getValue();
final Button deleteIcon = SPUIComponentProvider.getButton(fileName + "-" final Button deleteIcon = SPUIComponentProvider.getButton(
+ SPUIComponetIdProvider.UPLOAD_FILE_DELETE_ICON, "", SPUILabelDefinitions.DISCARD, fileName + "-" + SPUIComponetIdProvider.UPLOAD_FILE_DELETE_ICON, "",
ValoTheme.BUTTON_TINY + " " + "redicon", true, FontAwesome.TRASH_O, SPUILabelDefinitions.DISCARD, ValoTheme.BUTTON_TINY + " " + "redicon", true,
SPUIButtonStyleSmallNoBorder.class); FontAwesome.TRASH_O, SPUIButtonStyleSmallNoBorder.class);
deleteIcon.setData(itemId); deleteIcon.setData(itemId);
deleteIcon.addClickListener(event -> confirmAndDeleteArtifact((Long) itemId, fileName)); deleteIcon.addClickListener(event -> confirmAndDeleteArtifact((Long) itemId, fileName));
return deleteIcon; return deleteIcon;
@@ -279,19 +277,17 @@ public class ArtifactDetailsLayout extends VerticalLayout {
final ConfirmationDialog confirmDialog = new ConfirmationDialog(i18n.get("caption.delete.artifact.confirmbox"), final ConfirmationDialog confirmDialog = new ConfirmationDialog(i18n.get("caption.delete.artifact.confirmbox"),
i18n.get("message.delete.artifact", new Object[] { fileName }), i18n.get("button.ok"), i18n.get("message.delete.artifact", new Object[] { fileName }), i18n.get("button.ok"),
i18n.get("button.cancel"), i18n.get("button.cancel"), ok -> {
ok -> {
if (ok) { if (ok) {
final ArtifactManagement artifactManagement = SpringContextHelper final ArtifactManagement artifactManagement = SpringContextHelper
.getBean(ArtifactManagement.class); .getBean(ArtifactManagement.class);
artifactManagement.deleteLocalArtifact(id); artifactManagement.deleteLocalArtifact(id);
uINotification.displaySuccess(i18n.get("message.artifact.deleted", fileName)); uINotification.displaySuccess(i18n.get("message.artifact.deleted", fileName));
if (artifactUploadState.getSelectedBaseSwModuleId().isPresent()) { if (artifactUploadState.getSelectedBaseSwModuleId().isPresent()) {
populateArtifactDetails( populateArtifactDetails(artifactUploadState.getSelectedBaseSwModuleId().get(),
artifactUploadState.getSelectedBaseSwModuleId().get(), HawkbitCommonUtil.getFormattedNameVersion(
HawkbitCommonUtil.getFormattedNameVersion(artifactUploadState artifactUploadState.getSelectedBaseSoftwareModule().get().getName(),
.getSelectedBaseSoftwareModule().get().getName(), artifactUploadState artifactUploadState.getSelectedBaseSoftwareModule().get().getVersion()));
.getSelectedBaseSoftwareModule().get().getVersion()));
} else { } else {
populateArtifactDetails(null, null); populateArtifactDetails(null, null);
} }
@@ -469,8 +465,8 @@ public class ArtifactDetailsLayout extends VerticalLayout {
if (softwareModuleEvent.getSoftwareModuleEventType() == SoftwareModuleEventType.SELECTED_SOFTWARE_MODULE) { if (softwareModuleEvent.getSoftwareModuleEventType() == SoftwareModuleEventType.SELECTED_SOFTWARE_MODULE) {
ui.access(() -> { ui.access(() -> {
if (softwareModuleEvent.getSoftwareModule() != null) { if (softwareModuleEvent.getSoftwareModule() != null) {
populateArtifactDetails(softwareModuleEvent.getSoftwareModule().getId(), HawkbitCommonUtil populateArtifactDetails(softwareModuleEvent.getSoftwareModule().getId(),
.getFormattedNameVersion(softwareModuleEvent.getSoftwareModule().getName(), HawkbitCommonUtil.getFormattedNameVersion(softwareModuleEvent.getSoftwareModule().getName(),
softwareModuleEvent.getSoftwareModule().getVersion())); softwareModuleEvent.getSoftwareModule().getVersion()));
} else { } else {
populateArtifactDetails(null, null); populateArtifactDetails(null, null);
@@ -480,8 +476,8 @@ public class ArtifactDetailsLayout extends VerticalLayout {
if (softwareModuleEvent.getSoftwareModuleEventType() == SoftwareModuleEventType.ARTIFACTS_CHANGED) { if (softwareModuleEvent.getSoftwareModuleEventType() == SoftwareModuleEventType.ARTIFACTS_CHANGED) {
ui.access(() -> { ui.access(() -> {
if (softwareModuleEvent.getSoftwareModule() != null) { if (softwareModuleEvent.getSoftwareModule() != null) {
populateArtifactDetails(softwareModuleEvent.getSoftwareModule().getId(), HawkbitCommonUtil populateArtifactDetails(softwareModuleEvent.getSoftwareModule().getId(),
.getFormattedNameVersion(softwareModuleEvent.getSoftwareModule().getName(), HawkbitCommonUtil.getFormattedNameVersion(softwareModuleEvent.getSoftwareModule().getName(),
softwareModuleEvent.getSoftwareModule().getVersion())); softwareModuleEvent.getSoftwareModule().getVersion()));
} else { } else {
populateArtifactDetails(null, null); populateArtifactDetails(null, null);

View File

@@ -201,13 +201,13 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout {
} }
if (sourceComponent.getId().startsWith(SPUIComponetIdProvider.UPLOAD_TYPE_BUTTON_PREFIX)) { if (sourceComponent.getId().startsWith(SPUIComponetIdProvider.UPLOAD_TYPE_BUTTON_PREFIX)) {
final String swModuleTypeName = sourceComponent.getId().replace( final String swModuleTypeName = sourceComponent.getId()
SPUIComponetIdProvider.UPLOAD_TYPE_BUTTON_PREFIX, ""); .replace(SPUIComponetIdProvider.UPLOAD_TYPE_BUTTON_PREFIX, "");
if (artifactUploadState.getSoftwareModuleFilters().getSoftwareModuleType().isPresent() if (artifactUploadState.getSoftwareModuleFilters().getSoftwareModuleType().isPresent()
&& artifactUploadState.getSoftwareModuleFilters().getSoftwareModuleType().get().getName() && artifactUploadState.getSoftwareModuleFilters().getSoftwareModuleType().get().getName()
.equalsIgnoreCase(swModuleTypeName)) { .equalsIgnoreCase(swModuleTypeName)) {
notification.displayValidationError(i18n.get("message.swmodule.type.check.delete", notification.displayValidationError(
new Object[] { swModuleTypeName })); i18n.get("message.swmodule.type.check.delete", new Object[] { swModuleTypeName }));
} else { } else {
deleteSWModuleType(swModuleTypeName); deleteSWModuleType(swModuleTypeName);
updateSWActionCount(); updateSWActionCount();

View File

@@ -100,15 +100,14 @@ public class SoftwareModuleTable extends AbstractTable {
@EventBusListenerMethod(scope = EventScope.SESSION) @EventBusListenerMethod(scope = EventScope.SESSION)
void onEvent(final SMFilterEvent filterEvent) { void onEvent(final SMFilterEvent filterEvent) {
UI.getCurrent().access( UI.getCurrent().access(() -> {
() -> {
if (filterEvent == SMFilterEvent.FILTER_BY_TYPE || filterEvent == SMFilterEvent.FILTER_BY_TEXT if (filterEvent == SMFilterEvent.FILTER_BY_TYPE || filterEvent == SMFilterEvent.FILTER_BY_TEXT
|| filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TYPE || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TYPE
|| filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TEXT) { || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TEXT) {
refreshFilter(); refreshFilter();
} }
}); });
} }
/* /*
@@ -139,8 +138,8 @@ public class SoftwareModuleTable extends AbstractTable {
BaseSwModuleBeanQuery.class); BaseSwModuleBeanQuery.class);
swQF.setQueryConfiguration(queryConfiguration); swQF.setQueryConfiguration(queryConfiguration);
final LazyQueryContainer container = new LazyQueryContainer(new LazyQueryDefinition(true, final LazyQueryContainer container = new LazyQueryContainer(
SPUIDefinitions.PAGE_SIZE, "swId"), swQF); new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, "swId"), swQF);
return container; return container;
} }
@@ -207,8 +206,8 @@ public class SoftwareModuleTable extends AbstractTable {
final SoftwareModule baseSoftwareModule = softwareManagement.findSoftwareModuleById(value); final SoftwareModule baseSoftwareModule = softwareManagement.findSoftwareModuleById(value);
artifactUploadState.setSelectedBaseSoftwareModule(baseSoftwareModule); artifactUploadState.setSelectedBaseSoftwareModule(baseSoftwareModule);
artifactUploadState.setSelectedSoftwareModules(values); artifactUploadState.setSelectedSoftwareModules(values);
eventBus.publish(this, new SoftwareModuleEvent(SoftwareModuleEventType.SELECTED_SOFTWARE_MODULE, eventBus.publish(this,
baseSoftwareModule)); new SoftwareModuleEvent(SoftwareModuleEventType.SELECTED_SOFTWARE_MODULE, baseSoftwareModule));
} }
} else { } else {
artifactUploadState.setSelectedBaseSwModuleId(null); artifactUploadState.setSelectedBaseSwModuleId(null);
@@ -256,10 +255,10 @@ public class SoftwareModuleTable extends AbstractTable {
item.getItemProperty(SPUILabelDefinitions.VAR_VENDOR).setValue(swModule.getVendor()); item.getItemProperty(SPUILabelDefinitions.VAR_VENDOR).setValue(swModule.getVendor());
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_BY).setValue(swModule.getCreatedBy()); item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_BY).setValue(swModule.getCreatedBy());
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setValue(swModule.getLastModifiedBy()); item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setValue(swModule.getLastModifiedBy());
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_DATE).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_DATE)
SPDateTimeUtil.getFormattedDate(swModule.getCreatedAt())); .setValue(SPDateTimeUtil.getFormattedDate(swModule.getCreatedAt()));
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE)
SPDateTimeUtil.getFormattedDate(swModule.getLastModifiedAt())); .setValue(SPDateTimeUtil.getFormattedDate(swModule.getLastModifiedAt()));
if (!artifactUploadState.getSelectedSoftwareModules().isEmpty()) { if (!artifactUploadState.getSelectedSoftwareModules().isEmpty()) {
artifactUploadState.getSelectedSoftwareModules().stream().forEach(swmNameId -> unselect(swmNameId)); artifactUploadState.getSelectedSoftwareModules().stream().forEach(swmNameId -> unselect(swmNameId));
} }
@@ -283,10 +282,10 @@ public class SoftwareModuleTable extends AbstractTable {
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1F));
columnList columnList
.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.1F)); .add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), columnList.add(
new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"),
0.1F)); 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE,
i18n.get("header.modifiedDate"), 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.2F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.2F));
} else { } else {
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_NAME, i18n.get("header.name"), 0.8F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_NAME, i18n.get("header.name"), 0.8F));

View File

@@ -211,14 +211,13 @@ public class SoftwareModuleDetailsTable extends Table {
private void unassignSW(final ClickEvent event, final DistributionSet distributionSet, private void unassignSW(final ClickEvent event, final DistributionSet distributionSet,
final Set<SoftwareModule> alreadyAssignedSwModules) { final Set<SoftwareModule> alreadyAssignedSwModules) {
final SoftwareModule unAssignedSw = getSoftwareModule( final SoftwareModule unAssignedSw = getSoftwareModule((Label) getContainerDataSource()
(Label) getContainerDataSource().getItem(event.getButton().getId()).getItemProperty(SOFT_MODULE) .getItem(event.getButton().getId()).getItemProperty(SOFT_MODULE).getValue(), alreadyAssignedSwModules);
.getValue(), alreadyAssignedSwModules);
final DistributionSet newDistributionSet = distributionSetManagement.unassignSoftwareModule(distributionSet, final DistributionSet newDistributionSet = distributionSetManagement.unassignSoftwareModule(distributionSet,
unAssignedSw); unAssignedSw);
manageDistUIState.setLastSelectedDistribution(newDistributionSet.getDistributionSetIdName()); manageDistUIState.setLastSelectedDistribution(newDistributionSet.getDistributionSetIdName());
eventBus.publish(this, new DistributionTableEvent(DistributionComponentEvent.ON_VALUE_CHANGE, eventBus.publish(this,
newDistributionSet)); new DistributionTableEvent(DistributionComponentEvent.ON_VALUE_CHANGE, newDistributionSet));
eventBus.publish(this, DistributionsUIEvent.ORDER_BY_DISTRIBUTION); eventBus.publish(this, DistributionsUIEvent.ORDER_BY_DISTRIBUTION);
uiNotification.displaySuccess(i18n.get("message.sw.unassigned", unAssignedSw.getName())); uiNotification.displaySuccess(i18n.get("message.sw.unassigned", unAssignedSw.getName()));
} }
@@ -251,8 +250,8 @@ public class SoftwareModuleDetailsTable extends Table {
} }
private Label createMandatoryLabel(final boolean mandatory) { private Label createMandatoryLabel(final boolean mandatory) {
final Label mandatoryLable = mandatory ? HawkbitCommonUtil.getFormatedLabel(" * ") : HawkbitCommonUtil final Label mandatoryLable = mandatory ? HawkbitCommonUtil.getFormatedLabel(" * ")
.getFormatedLabel(" "); : HawkbitCommonUtil.getFormatedLabel(" ");
if (mandatory) { if (mandatory) {
mandatoryLable.setStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR); mandatoryLable.setStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR);
} }

View File

@@ -131,8 +131,8 @@ public class DistributionTagToken extends AbstractTagToken {
private DistributionSetTagAssigmentResult toggleAssignment(final String tagNameSelected) { private DistributionSetTagAssigmentResult toggleAssignment(final String tagNameSelected) {
final Set<Long> distributionList = new HashSet<Long>(); final Set<Long> distributionList = new HashSet<Long>();
distributionList.add(selectedDS.getId()); distributionList.add(selectedDS.getId());
final DistributionSetTagAssigmentResult result = distributionSetManagement.toggleTagAssignment( final DistributionSetTagAssigmentResult result = distributionSetManagement.toggleTagAssignment(distributionList,
distributionList, tagNameSelected); tagNameSelected);
uinotification.displaySuccess(HawkbitCommonUtil.getDistributionTagAssignmentMsg(tagNameSelected, result, i18n)); uinotification.displaySuccess(HawkbitCommonUtil.getDistributionTagAssignmentMsg(tagNameSelected, result, i18n));
return result; return result;
} }

View File

@@ -57,9 +57,9 @@ public class SPUIErrorHandler extends DefaultErrorHandler {
} }
final Component errorOrgin = findAbstractComponent(event); final Component errorOrgin = findAbstractComponent(event);
if (null != errorOrgin && errorOrgin.getUI() != null) { if (null != errorOrgin && errorOrgin.getUI() != null) {
notification notification.showNotification(style.toString(), i18n.get("caption.error"),
.showNotification(style.toString(), i18n.get("caption.error"), i18n.get("message.error.temp", i18n.get("message.error.temp", new Object[] { exceptionName }), false,
new Object[] { exceptionName }), false, errorOrgin.getUI().getPage()); errorOrgin.getUI().getPage());
} }
} }
} }

View File

@@ -178,19 +178,19 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co
comboLabel = SPUIComponentProvider.getLabel(i18n.get("label.choose.type"), null); comboLabel = SPUIComponentProvider.getLabel(i18n.get("label.choose.type"), null);
madatoryLabel = getMandatoryLabel(); madatoryLabel = getMandatoryLabel();
typeName = SPUIComponentProvider.getTextField("", ValoTheme.TEXTFIELD_TINY + " " typeName = SPUIComponentProvider.getTextField("",
+ SPUIDefinitions.DIST_SET_TYPE_NAME, true, "", i18n.get("textfield.name"), true, ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.DIST_SET_TYPE_NAME, true, "",
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH); i18n.get("textfield.name"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
typeName.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_NAME); typeName.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_NAME);
typeKey = SPUIComponentProvider.getTextField("", ValoTheme.TEXTFIELD_TINY + " " typeKey = SPUIComponentProvider.getTextField("",
+ SPUIDefinitions.DIST_SET_TYPE_KEY, true, "", i18n.get("textfield.key"), true, ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.DIST_SET_TYPE_KEY, true, "", i18n.get("textfield.key"),
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH); true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
typeKey.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_KEY); typeKey.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_KEY);
typeDesc = SPUIComponentProvider.getTextArea("", ValoTheme.TEXTFIELD_TINY + " " typeDesc = SPUIComponentProvider.getTextArea("",
+ SPUIDefinitions.DIST_SET_TYPE_DESC, false, "", i18n.get("textfield.description"), ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.DIST_SET_TYPE_DESC, false, "",
SPUILabelDefinitions.TEXT_AREA_MAX_LENGTH); i18n.get("textfield.description"), SPUILabelDefinitions.TEXT_AREA_MAX_LENGTH);
typeDesc.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_DESC); typeDesc.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_DESC);
typeDesc.setImmediate(true); typeDesc.setImmediate(true);
@@ -492,12 +492,10 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co
Item saveTblitem; Item saveTblitem;
saveTblitem = sourceTablecontainer.addItem(selectedId); saveTblitem = sourceTablecontainer.addItem(selectedId);
selectedTable.getContainerDataSource().getItem(selectedId).getItemProperty(DIST_TYPE_NAME); selectedTable.getContainerDataSource().getItem(selectedId).getItemProperty(DIST_TYPE_NAME);
saveTblitem.getItemProperty(DIST_TYPE_NAME).setValue( saveTblitem.getItemProperty(DIST_TYPE_NAME).setValue(selectedTable.getContainerDataSource()
selectedTable.getContainerDataSource().getItem(selectedId).getItemProperty(DIST_TYPE_NAME) .getItem(selectedId).getItemProperty(DIST_TYPE_NAME).getValue());
.getValue()); saveTblitem.getItemProperty(DIST_TYPE_DESCRIPTION).setValue(selectedTable.getContainerDataSource()
saveTblitem.getItemProperty(DIST_TYPE_DESCRIPTION).setValue( .getItem(selectedId).getItemProperty(DIST_TYPE_DESCRIPTION).getValue());
selectedTable.getContainerDataSource().getItem(selectedId).getItemProperty(DIST_TYPE_DESCRIPTION)
.getValue());
} }
} }
@@ -533,9 +531,8 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co
final double greenColorValue = color.getGreen(); final double greenColorValue = color.getGreen();
greenSlider.setValue(new Double(greenColorValue)); greenSlider.setValue(new Double(greenColorValue));
} catch (final ValueOutOfBoundsException e) { } catch (final ValueOutOfBoundsException e) {
LOG.error( LOG.error("Unable to set RGB color value to " + color.getRed() + "," + color.getGreen() + ","
"Unable to set RGB color value to " + color.getRed() + "," + color.getGreen() + "," + color.getBlue(), e);
+ color.getBlue(), e);
} }
} }
@@ -621,8 +618,8 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co
private Boolean checkIsDuplicate(final DistributionSetType existingDistType) { private Boolean checkIsDuplicate(final DistributionSetType existingDistType) {
if (existingDistType != null) { if (existingDistType != null) {
uiNotification.displayValidationError(i18n.get("message.tag.duplicate.check", uiNotification.displayValidationError(
new Object[] { existingDistType.getName() })); i18n.get("message.tag.duplicate.check", new Object[] { existingDistType.getName() }));
return Boolean.TRUE; return Boolean.TRUE;
} }
return Boolean.FALSE; return Boolean.FALSE;
@@ -630,8 +627,8 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co
private Boolean checkIsDuplicateByKey(final DistributionSetType existingDistType) { private Boolean checkIsDuplicateByKey(final DistributionSetType existingDistType) {
if (existingDistType != null) { if (existingDistType != null) {
uiNotification.displayValidationError(i18n.get("message.type.key.duplicate.check", uiNotification.displayValidationError(
new Object[] { existingDistType.getKey() })); i18n.get("message.type.key.duplicate.check", new Object[] { existingDistType.getKey() }));
return Boolean.TRUE; return Boolean.TRUE;
} }
return Boolean.FALSE; return Boolean.FALSE;
@@ -681,7 +678,8 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co
newDistType = distributionSetManagement.createDistributionSetType(newDistType); newDistType = distributionSetManagement.createDistributionSetType(newDistType);
uiNotification.displaySuccess(i18n.get("message.save.success", new Object[] { newDistType.getName() })); uiNotification.displaySuccess(i18n.get("message.save.success", new Object[] { newDistType.getName() }));
closeWindow(); closeWindow();
eventBus.publish(this, new DistributionSetTypeEvent(DistributionSetTypeEnum.ADD_DIST_SET_TYPE, newDistType)); eventBus.publish(this,
new DistributionSetTypeEvent(DistributionSetTypeEnum.ADD_DIST_SET_TYPE, newDistType));
} else { } else {
uiNotification.displayValidationError(i18n.get("message.error.missing.typenameorkey")); uiNotification.displayValidationError(i18n.get("message.error.missing.typenameorkey"));
@@ -724,11 +722,11 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co
} }
updateDistSetType.setColour(getColorPickedSting()); updateDistSetType.setColour(getColorPickedSting());
distributionSetManagement.updateDistributionSetType(updateDistSetType); distributionSetManagement.updateDistributionSetType(updateDistSetType);
uiNotification.displaySuccess(i18n.get("message.update.success", uiNotification
new Object[] { updateDistSetType.getName() })); .displaySuccess(i18n.get("message.update.success", new Object[] { updateDistSetType.getName() }));
closeWindow(); closeWindow();
eventBus.publish(this, new DistributionSetTypeEvent(DistributionSetTypeEnum.UPDATE_DIST_SET_TYPE, eventBus.publish(this,
updateDistSetType)); new DistributionSetTypeEvent(DistributionSetTypeEnum.UPDATE_DIST_SET_TYPE, updateDistSetType));
} else { } else {
uiNotification.displayValidationError(i18n.get("message.tag.update.mandatory")); uiNotification.displayValidationError(i18n.get("message.tag.update.mandatory"));
@@ -995,9 +993,8 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co
* @return * @return
*/ */
private LazyQueryContainer getDistSetTypeLazyQueryContainer() { private LazyQueryContainer getDistSetTypeLazyQueryContainer() {
final LazyQueryContainer disttypeContainer = HawkbitCommonUtil final LazyQueryContainer disttypeContainer = HawkbitCommonUtil.createLazyQueryContainer(
.createLazyQueryContainer(new BeanQueryFactory<DistributionSetTypeBeanQuery>( new BeanQueryFactory<DistributionSetTypeBeanQuery>(DistributionSetTypeBeanQuery.class));
DistributionSetTypeBeanQuery.class));
disttypeContainer.addContainerProperty(SPUILabelDefinitions.VAR_NAME, String.class, "", true, true); disttypeContainer.addContainerProperty(SPUILabelDefinitions.VAR_NAME, String.class, "", true, true);
return disttypeContainer; return disttypeContainer;
@@ -1049,8 +1046,8 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co
selectedTable.setEnabled(true); selectedTable.setEnabled(true);
saveDistSetType.setEnabled(true); saveDistSetType.setEnabled(true);
} else { } else {
uiNotification.displayValidationError(selectedTypeTag.getName() + " " uiNotification.displayValidationError(
+ i18n.get("message.error.dist.set.type.update")); selectedTypeTag.getName() + " " + i18n.get("message.error.dist.set.type.update"));
distTypeSelectLayout.setEnabled(false); distTypeSelectLayout.setEnabled(false);
selectedTable.setEnabled(false); selectedTable.setEnabled(false);
saveDistSetType.setEnabled(false); saveDistSetType.setEnabled(false);

View File

@@ -154,8 +154,8 @@ public class DistributionSetDetails extends AbstractTableDetailsLayout {
private void showUnsavedAssignment() { private void showUnsavedAssignment() {
Item item; Item item;
final Map<DistributionSetIdName, Set<SoftwareModuleIdName>> assignedList = manageDistUIState.getAssignedList(); final Map<DistributionSetIdName, Set<SoftwareModuleIdName>> assignedList = manageDistUIState.getAssignedList();
final Long selectedDistId = manageDistUIState.getLastSelectedDistribution().isPresent() ? manageDistUIState final Long selectedDistId = manageDistUIState.getLastSelectedDistribution().isPresent()
.getLastSelectedDistribution().get().getId() : null; ? manageDistUIState.getLastSelectedDistribution().get().getId() : null;
Set<SoftwareModuleIdName> softwareModuleIdNameList = null; Set<SoftwareModuleIdName> softwareModuleIdNameList = null;
for (final Map.Entry<DistributionSetIdName, Set<SoftwareModuleIdName>> entry : assignedList.entrySet()) { for (final Map.Entry<DistributionSetIdName, Set<SoftwareModuleIdName>> entry : assignedList.entrySet()) {
@@ -174,20 +174,18 @@ public class DistributionSetDetails extends AbstractTableDetailsLayout {
.append("<I>"); .append("<I>");
} else { } else {
assignedSWModule.put( assignedSWModule.put(softwareModule.getType().getName(),
softwareModule.getType().getName(), new StringBuilder().append("<I>").append(
new StringBuilder() getUnsavedAssigedSwModule(softwareModule.getName(), softwareModule.getVersion()))
.append("<I>") .append("<I>"));
.append(getUnsavedAssigedSwModule(softwareModule.getName(),
softwareModule.getVersion())).append("<I>"));
} }
} }
for (final Map.Entry<String, StringBuilder> entry : assignedSWModule.entrySet()) { for (final Map.Entry<String, StringBuilder> entry : assignedSWModule.entrySet()) {
item = softwareModuleTable.getContainerDataSource().getItem(entry.getKey()); item = softwareModuleTable.getContainerDataSource().getItem(entry.getKey());
if (item != null) { if (item != null) {
item.getItemProperty(SOFT_MODULE).setValue( item.getItemProperty(SOFT_MODULE)
HawkbitCommonUtil.getFormatedLabel(entry.getValue().toString())); .setValue(HawkbitCommonUtil.getFormatedLabel(entry.getValue().toString()));
assignSoftModuleButton(item, entry); assignSoftModuleButton(item, entry);
} }
@@ -200,10 +198,9 @@ public class DistributionSetDetails extends AbstractTableDetailsLayout {
* @param entry * @param entry
*/ */
private void assignSoftModuleButton(final Item item, final Map.Entry<String, StringBuilder> entry) { private void assignSoftModuleButton(final Item item, final Map.Entry<String, StringBuilder> entry) {
if (permissionChecker.hasUpdateDistributionPermission() if (permissionChecker.hasUpdateDistributionPermission() && distributionSetManagement
&& distributionSetManagement .findDistributionSetById(manageDistUIState.getLastSelectedDistribution().get().getId())
.findDistributionSetById(manageDistUIState.getLastSelectedDistribution().get().getId()) .getAssignedTargets().isEmpty()) {
.getAssignedTargets().isEmpty()) {
final Button reassignSoftModule = SPUIComponentProvider.getButton(entry.getKey(), "", "", "", true, final Button reassignSoftModule = SPUIComponentProvider.getButton(entry.getKey(), "", "", "", true,
FontAwesome.TIMES, SPUIButtonStyleSmallNoBorder.class); FontAwesome.TIMES, SPUIButtonStyleSmallNoBorder.class);
reassignSoftModule.setEnabled(false); reassignSoftModule.setEnabled(false);
@@ -237,25 +234,20 @@ public class DistributionSetDetails extends AbstractTableDetailsLayout {
* same type is dropped, then override with previous one. * same type is dropped, then override with previous one.
*/ */
if (module.getType().getMaxAssignments() == 1) { if (module.getType().getMaxAssignments() == 1) {
assignedSWModule.put( assignedSWModule.put(module.getType().getName(), new StringBuilder().append("<I>")
module.getType().getName(), .append(getUnsavedAssigedSwModule(module.getName(), module.getVersion())).append("</I>"));
new StringBuilder().append("<I>")
.append(getUnsavedAssigedSwModule(module.getName(), module.getVersion()))
.append("</I>"));
} }
} else { } else {
assignedSWModule.put( assignedSWModule.put(module.getType().getName(), new StringBuilder().append("<I>")
module.getType().getName(), .append(getUnsavedAssigedSwModule(module.getName(), module.getVersion())).append("</I>"));
new StringBuilder().append("<I>")
.append(getUnsavedAssigedSwModule(module.getName(), module.getVersion())).append("</I>"));
} }
for (final Map.Entry<String, StringBuilder> entry : assignedSWModule.entrySet()) { for (final Map.Entry<String, StringBuilder> entry : assignedSWModule.entrySet()) {
final Item item = softwareModuleTable.getContainerDataSource().getItem(entry.getKey()); final Item item = softwareModuleTable.getContainerDataSource().getItem(entry.getKey());
if (item != null) { if (item != null) {
item.getItemProperty(SOFT_MODULE).setValue( item.getItemProperty(SOFT_MODULE)
HawkbitCommonUtil.getFormatedLabel(entry.getValue().toString())); .setValue(HawkbitCommonUtil.getFormatedLabel(entry.getValue().toString()));
assignSoftModuleButton(item, entry); assignSoftModuleButton(item, entry);
} }
@@ -313,9 +305,9 @@ public class DistributionSetDetails extends AbstractTableDetailsLayout {
} }
if (isMigrationRequired != null) { if (isMigrationRequired != null) {
detailsTabLayout.addComponent(SPUIComponentProvider.createNameValueLabel( detailsTabLayout.addComponent(
i18n.get("checkbox.dist.migration.required"), SPUIComponentProvider.createNameValueLabel(i18n.get("checkbox.dist.migration.required"),
isMigrationRequired.equals(Boolean.TRUE) ? i18n.get("label.yes") : i18n.get("label.no"))); isMigrationRequired.equals(Boolean.TRUE) ? i18n.get("label.yes") : i18n.get("label.no")));
} }
} }
@@ -445,7 +437,8 @@ public class DistributionSetDetails extends AbstractTableDetailsLayout {
@EventBusListenerMethod(scope = EventScope.SESSION) @EventBusListenerMethod(scope = EventScope.SESSION)
void onEvent(final DistributionTableEvent distributionTableEvent) { void onEvent(final DistributionTableEvent distributionTableEvent) {
if (distributionTableEvent.getDistributionComponentEvent() == DistributionComponentEvent.ON_VALUE_CHANGE if (distributionTableEvent.getDistributionComponentEvent() == DistributionComponentEvent.ON_VALUE_CHANGE
|| distributionTableEvent.getDistributionComponentEvent() == DistributionComponentEvent.EDIT_DISTRIBUTION) { || distributionTableEvent
.getDistributionComponentEvent() == DistributionComponentEvent.EDIT_DISTRIBUTION) {
assignedSWModule.clear(); assignedSWModule.clear();
ui.access(() -> { ui.access(() -> {
/** /**
@@ -474,8 +467,8 @@ public class DistributionSetDetails extends AbstractTableDetailsLayout {
.getDistributionSetIdName(); .getDistributionSetIdName();
if (distIdName.getId().equals(selectedDsModule.getId()) if (distIdName.getId().equals(selectedDsModule.getId())
&& distIdName.getName().equals(selectedDsModule.getName())) { && distIdName.getName().equals(selectedDsModule.getName())) {
selectedDsModule = distributionSetManagement.findDistributionSetByIdWithDetails(selectedDsModule selectedDsModule = distributionSetManagement
.getId()); .findDistributionSetByIdWithDetails(selectedDsModule.getId());
populteModule(selectedDsModule); populteModule(selectedDsModule);
} }
}); });
@@ -484,7 +477,8 @@ public class DistributionSetDetails extends AbstractTableDetailsLayout {
@EventBusListenerMethod(scope = EventScope.SESSION) @EventBusListenerMethod(scope = EventScope.SESSION)
void onEvent(final SaveActionWindowEvent saveActionWindowEvent) { void onEvent(final SaveActionWindowEvent saveActionWindowEvent) {
if ((saveActionWindowEvent == SaveActionWindowEvent.SAVED_ASSIGNMENTS || saveActionWindowEvent == SaveActionWindowEvent.DISCARD_ALL_ASSIGNMENTS) if ((saveActionWindowEvent == SaveActionWindowEvent.SAVED_ASSIGNMENTS
|| saveActionWindowEvent == SaveActionWindowEvent.DISCARD_ALL_ASSIGNMENTS)
&& selectedDsModule != null) { && selectedDsModule != null) {
assignedSWModule.clear(); assignedSWModule.clear();
selectedDsModule = distributionSetManagement.findDistributionSetByIdWithDetails(selectedDsModule.getId()); selectedDsModule = distributionSetManagement.findDistributionSetByIdWithDetails(selectedDsModule.getId());

View File

@@ -162,15 +162,16 @@ public class DistributionSetTable extends AbstractTable {
.ifPresent(value -> queryConfiguration.put(SPUIDefinitions.FILTER_BY_TEXT, value)); .ifPresent(value -> queryConfiguration.put(SPUIDefinitions.FILTER_BY_TEXT, value));
if (null != manageDistUIState.getManageDistFilters().getClickedDistSetType()) { if (null != manageDistUIState.getManageDistFilters().getClickedDistSetType()) {
queryConfiguration.put(SPUIDefinitions.FILTER_BY_DISTRIBUTION_SET_TYPE, manageDistUIState queryConfiguration.put(SPUIDefinitions.FILTER_BY_DISTRIBUTION_SET_TYPE,
.getManageDistFilters().getClickedDistSetType()); manageDistUIState.getManageDistFilters().getClickedDistSetType());
} }
final BeanQueryFactory<ManageDistBeanQuery> distributionQF = new BeanQueryFactory<ManageDistBeanQuery>( final BeanQueryFactory<ManageDistBeanQuery> distributionQF = new BeanQueryFactory<ManageDistBeanQuery>(
ManageDistBeanQuery.class); ManageDistBeanQuery.class);
distributionQF.setQueryConfiguration(queryConfiguration); distributionQF.setQueryConfiguration(queryConfiguration);
final LazyQueryContainer distContainer = new LazyQueryContainer(new LazyQueryDefinition(true, final LazyQueryContainer distContainer = new LazyQueryContainer(
SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME), distributionQF); new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME),
distributionQF);
return distContainer; return distContainer;
} }
@@ -254,8 +255,8 @@ public class DistributionSetTable extends AbstractTable {
final DistributionSet lastSelectedDistSet = distributionSetManagement final DistributionSet lastSelectedDistSet = distributionSetManagement
.findDistributionSetByIdWithDetails(value.getId()); .findDistributionSetByIdWithDetails(value.getId());
eventBus.publish(this, new DistributionTableEvent(DistributionComponentEvent.ON_VALUE_CHANGE, eventBus.publish(this,
lastSelectedDistSet)); new DistributionTableEvent(DistributionComponentEvent.ON_VALUE_CHANGE, lastSelectedDistSet));
} }
} else { } else {
manageDistUIState.setSelectedDistributions(null); manageDistUIState.setSelectedDistributions(null);
@@ -394,8 +395,8 @@ public class DistributionSetTable extends AbstractTable {
private void publishAssignEvent(final Long distId, final SoftwareModule softwareModule) { private void publishAssignEvent(final Long distId, final SoftwareModule softwareModule) {
if (manageDistUIState.getLastSelectedDistribution().isPresent() if (manageDistUIState.getLastSelectedDistribution().isPresent()
&& manageDistUIState.getLastSelectedDistribution().get().getId().equals(distId)) { && manageDistUIState.getLastSelectedDistribution().get().getId().equals(distId)) {
eventBus.publish(this, new SoftwareModuleEvent(SoftwareModuleEventType.ASSIGN_SOFTWARE_MODULE, eventBus.publish(this,
softwareModule)); new SoftwareModuleEvent(SoftwareModuleEventType.ASSIGN_SOFTWARE_MODULE, softwareModule));
} }
} }
@@ -404,8 +405,8 @@ public class DistributionSetTable extends AbstractTable {
* @param softwareModule * @param softwareModule
* @param softwareModuleIdName * @param softwareModuleIdName
*/ */
private void handleFirmwareCase(final Map<Long, Set<SoftwareModuleIdName>> map, private void handleFirmwareCase(final Map<Long, Set<SoftwareModuleIdName>> map, final SoftwareModule softwareModule,
final SoftwareModule softwareModule, final SoftwareModuleIdName softwareModuleIdName) { final SoftwareModuleIdName softwareModuleIdName) {
if (softwareModule.getType().getMaxAssignments() == 1) { if (softwareModule.getType().getMaxAssignments() == 1) {
if (!map.containsKey(softwareModule.getType().getId())) { if (!map.containsKey(softwareModule.getType().getId())) {
map.put(softwareModule.getType().getId(), new HashSet<SoftwareModuleIdName>()); map.put(softwareModule.getType().getId(), new HashSet<SoftwareModuleIdName>());
@@ -422,8 +423,8 @@ public class DistributionSetTable extends AbstractTable {
* @param softwareModule * @param softwareModule
* @param softwareModuleIdName * @param softwareModuleIdName
*/ */
private void handleSoftwareCase(final Map<Long, Set<SoftwareModuleIdName>> map, private void handleSoftwareCase(final Map<Long, Set<SoftwareModuleIdName>> map, final SoftwareModule softwareModule,
final SoftwareModule softwareModule, final SoftwareModuleIdName softwareModuleIdName) { final SoftwareModuleIdName softwareModuleIdName) {
if (softwareModule.getType().getMaxAssignments() == Integer.MAX_VALUE) { if (softwareModule.getType().getMaxAssignments() == Integer.MAX_VALUE) {
if (!map.containsKey(softwareModule.getType().getId())) { if (!map.containsKey(softwareModule.getType().getId())) {
map.put(softwareModule.getType().getId(), new HashSet<SoftwareModuleIdName>()); map.put(softwareModule.getType().getId(), new HashSet<SoftwareModuleIdName>());
@@ -547,14 +548,14 @@ public class DistributionSetTable extends AbstractTable {
item.getItemProperty(SPUILabelDefinitions.VAR_ID).setValue(distributionSet.getId()); item.getItemProperty(SPUILabelDefinitions.VAR_ID).setValue(distributionSet.getId());
item.getItemProperty(SPUILabelDefinitions.VAR_DESC).setValue(distributionSet.getDescription()); item.getItemProperty(SPUILabelDefinitions.VAR_DESC).setValue(distributionSet.getDescription());
item.getItemProperty(SPUILabelDefinitions.VAR_VERSION).setValue(distributionSet.getVersion()); item.getItemProperty(SPUILabelDefinitions.VAR_VERSION).setValue(distributionSet.getVersion());
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_BY).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_BY)
HawkbitCommonUtil.getIMUser(distributionSet.getCreatedBy())); .setValue(HawkbitCommonUtil.getIMUser(distributionSet.getCreatedBy()));
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY)
HawkbitCommonUtil.getIMUser(distributionSet.getLastModifiedBy())); .setValue(HawkbitCommonUtil.getIMUser(distributionSet.getLastModifiedBy()));
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_DATE).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_DATE)
SPDateTimeUtil.getFormattedDate(distributionSet.getCreatedAt())); .setValue(SPDateTimeUtil.getFormattedDate(distributionSet.getCreatedAt()));
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE)
SPDateTimeUtil.getFormattedDate(distributionSet.getLastModifiedAt())); .setValue(SPDateTimeUtil.getFormattedDate(distributionSet.getLastModifiedAt()));
item.getItemProperty(SPUILabelDefinitions.VAR_IS_DISTRIBUTION_COMPLETE).setValue(distributionSet.isComplete()); item.getItemProperty(SPUILabelDefinitions.VAR_IS_DISTRIBUTION_COMPLETE).setValue(distributionSet.isComplete());
if (manageDistUIState.getSelectedDistributions().isPresent()) { if (manageDistUIState.getSelectedDistributions().isPresent()) {
manageDistUIState.getSelectedDistributions().get().stream().forEach(dsNameId -> unselect(dsNameId)); manageDistUIState.getSelectedDistributions().get().stream().forEach(dsNameId -> unselect(dsNameId));
@@ -569,8 +570,8 @@ public class DistributionSetTable extends AbstractTable {
if (propertyId == null) { if (propertyId == null) {
// Styling for row // Styling for row
final Item item = getItem(itemId); final Item item = getItem(itemId);
final Boolean isComplete = (Boolean) item.getItemProperty( final Boolean isComplete = (Boolean) item
SPUILabelDefinitions.VAR_IS_DISTRIBUTION_COMPLETE).getValue(); .getItemProperty(SPUILabelDefinitions.VAR_IS_DISTRIBUTION_COMPLETE).getValue();
if (!isComplete) { if (!isComplete) {
return SPUIDefinitions.DISABLE_DISTRIBUTION; return SPUIDefinitions.DISABLE_DISTRIBUTION;
} }

View File

@@ -61,9 +61,9 @@ public class DSDeleteActionsLayout extends AbstractDeleteActionsLayout {
private static final long serialVersionUID = 3494052985006132714L; private static final long serialVersionUID = 3494052985006132714L;
private static final List<Object> DISPLAY_DROP_HINT_EVENTS = new ArrayList<>(Arrays.asList( private static final List<Object> DISPLAY_DROP_HINT_EVENTS = new ArrayList<>(
DragEvent.DISTRIBUTION_TYPE_DRAG, DragEvent.DISTRIBUTION_DRAG, DragEvent.SOFTWAREMODULE_DRAG, Arrays.asList(DragEvent.DISTRIBUTION_TYPE_DRAG, DragEvent.DISTRIBUTION_DRAG, DragEvent.SOFTWAREMODULE_DRAG,
DragEvent.SOFTWAREMODULE_TYPE_DRAG)); DragEvent.SOFTWAREMODULE_TYPE_DRAG));
@Autowired @Autowired
private I18N i18n; private I18N i18n;
@@ -236,8 +236,8 @@ public class DSDeleteActionsLayout extends AbstractDeleteActionsLayout {
final String distTypeName = HawkbitCommonUtil.removePrefix(distTypeId, final String distTypeName = HawkbitCommonUtil.removePrefix(distTypeId,
SPUIDefinitions.DISTRIBUTION_SET_TYPE_ID_PREFIXS); SPUIDefinitions.DISTRIBUTION_SET_TYPE_ID_PREFIXS);
if (isDsTypeSelected(distTypeName)) { if (isDsTypeSelected(distTypeName)) {
notification.displayValidationError(i18n.get("message.dist.type.check.delete", notification
new Object[] { distTypeName })); .displayValidationError(i18n.get("message.dist.type.check.delete", new Object[] { distTypeName }));
} else if (isDefaultDsType(distTypeName)) { } else if (isDefaultDsType(distTypeName)) {
notification.displayValidationError(i18n.get("message.cannot.delete.default.dstype")); notification.displayValidationError(i18n.get("message.cannot.delete.default.dstype"));
} else { } else {
@@ -253,9 +253,8 @@ public class DSDeleteActionsLayout extends AbstractDeleteActionsLayout {
* @return true if ds type is selected * @return true if ds type is selected
*/ */
private boolean isDsTypeSelected(final String distTypeName) { private boolean isDsTypeSelected(final String distTypeName) {
return null != manageDistUIState.getManageDistFilters().getClickedDistSetType() return null != manageDistUIState.getManageDistFilters().getClickedDistSetType() && manageDistUIState
&& manageDistUIState.getManageDistFilters().getClickedDistSetType().getName() .getManageDistFilters().getClickedDistSetType().getName().equalsIgnoreCase(distTypeName);
.equalsIgnoreCase(distTypeName);
} }
private void processDeleteSWType(final String swTypeId) { private void processDeleteSWType(final String swTypeId) {
@@ -265,8 +264,8 @@ public class DSDeleteActionsLayout extends AbstractDeleteActionsLayout {
if (manageDistUIState.getSoftwareModuleFilters().getSoftwareModuleType().isPresent() if (manageDistUIState.getSoftwareModuleFilters().getSoftwareModuleType().isPresent()
&& manageDistUIState.getSoftwareModuleFilters().getSoftwareModuleType().get().getName() && manageDistUIState.getSoftwareModuleFilters().getSoftwareModuleType().get().getName()
.equalsIgnoreCase(swModuleTypeName)) { .equalsIgnoreCase(swModuleTypeName)) {
notification.displayValidationError(i18n.get("message.swmodule.type.check.delete", notification.displayValidationError(
new Object[] { swModuleTypeName })); i18n.get("message.swmodule.type.check.delete", new Object[] { swModuleTypeName }));
} else { } else {
manageDistUIState.getSelectedDeleteSWModuleTypes().add(swModuleTypeName); manageDistUIState.getSelectedDeleteSWModuleTypes().add(swModuleTypeName);
updateDSActionCount(); updateDSActionCount();

View File

@@ -119,16 +119,15 @@ public class SwModuleTable extends AbstractTable {
@EventBusListenerMethod(scope = EventScope.SESSION) @EventBusListenerMethod(scope = EventScope.SESSION)
void onEvent(final SMFilterEvent filterEvent) { void onEvent(final SMFilterEvent filterEvent) {
UI.getCurrent().access( UI.getCurrent().access(() -> {
() -> {
if (filterEvent == SMFilterEvent.FILTER_BY_TYPE || filterEvent == SMFilterEvent.FILTER_BY_TEXT if (filterEvent == SMFilterEvent.FILTER_BY_TYPE || filterEvent == SMFilterEvent.FILTER_BY_TEXT
|| filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TYPE || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TYPE
|| filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TEXT) { || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TEXT) {
refreshFilter(); refreshFilter();
styleTableOnDistSelection(); styleTableOnDistSelection();
} }
}); });
} }
@EventBusListenerMethod(scope = EventScope.SESSION) @EventBusListenerMethod(scope = EventScope.SESSION)
@@ -192,8 +191,8 @@ public class SwModuleTable extends AbstractTable {
SwModuleBeanQuery.class); SwModuleBeanQuery.class);
swQF.setQueryConfiguration(queryConfiguration); swQF.setQueryConfiguration(queryConfiguration);
final LazyQueryContainer container = new LazyQueryContainer(new LazyQueryDefinition(true, final LazyQueryContainer container = new LazyQueryContainer(
SPUIDefinitions.PAGE_SIZE, "swId"), swQF); new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, "swId"), swQF);
return container; return container;
} }
@@ -215,8 +214,8 @@ public class SwModuleTable extends AbstractTable {
lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_CREATED_BY, String.class, null, false, true); lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_CREATED_BY, String.class, null, false, true);
lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, String.class, null, false, true); lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, String.class, null, false, true);
lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_CREATED_DATE, String.class, null, false, true); lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_CREATED_DATE, String.class, null, false, true);
lazyContainer lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, String.class, null, false,
.addContainerProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, String.class, null, false, true); true);
lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_COLOR, String.class, null, false, true); lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_COLOR, String.class, null, false, true);
lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_SOFT_TYPE_ID, Long.class, null, false, true); lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_SOFT_TYPE_ID, Long.class, null, false, true);
} }
@@ -291,8 +290,8 @@ public class SwModuleTable extends AbstractTable {
manageDistUIState.setSelectedBaseSwModuleId(value); manageDistUIState.setSelectedBaseSwModuleId(value);
final SoftwareModule baseSoftwareModule = softwareManagement.findSoftwareModuleById(value); final SoftwareModule baseSoftwareModule = softwareManagement.findSoftwareModuleById(value);
manageDistUIState.setSelectedSoftwareModules(values); manageDistUIState.setSelectedSoftwareModules(values);
eventBus.publish(this, new SoftwareModuleEvent(SoftwareModuleEventType.SELECTED_SOFTWARE_MODULE, eventBus.publish(this,
baseSoftwareModule)); new SoftwareModuleEvent(SoftwareModuleEventType.SELECTED_SOFTWARE_MODULE, baseSoftwareModule));
} }
} else { } else {
manageDistUIState.setSelectedBaseSwModuleId(null); manageDistUIState.setSelectedBaseSwModuleId(null);
@@ -318,10 +317,10 @@ public class SwModuleTable extends AbstractTable {
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1F));
columnList columnList
.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.1F)); .add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), columnList.add(
new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"),
0.1F)); 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE,
i18n.get("header.modifiedDate"), 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.2F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.2F));
} else { } else {
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_NAME, i18n.get("header.name"), 0.7F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_NAME, i18n.get("header.name"), 0.7F));
@@ -380,9 +379,9 @@ public class SwModuleTable extends AbstractTable {
private void addTypeStyle(final Long tagId, final String color) { private void addTypeStyle(final Long tagId, final String color) {
final JavaScript javaScript = UI.getCurrent().getPage().getJavaScript(); final JavaScript javaScript = UI.getCurrent().getPage().getJavaScript();
UI.getCurrent().access( UI.getCurrent()
() -> javaScript.execute(HawkbitCommonUtil .access(() -> javaScript.execute(
.getScriptSMHighlightWithColor(".v-table-row-distribution-upload-type-" + tagId HawkbitCommonUtil.getScriptSMHighlightWithColor(".v-table-row-distribution-upload-type-" + tagId
+ "{background-color:" + color + " !important;background-image:none !important }"))); + "{background-color:" + color + " !important;background-image:none !important }")));
} }
@@ -444,10 +443,10 @@ public class SwModuleTable extends AbstractTable {
item.getItemProperty(SPUILabelDefinitions.VAR_VENDOR).setValue(swModule.getVendor()); item.getItemProperty(SPUILabelDefinitions.VAR_VENDOR).setValue(swModule.getVendor());
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_BY).setValue(swModule.getCreatedBy()); item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_BY).setValue(swModule.getCreatedBy());
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setValue(swModule.getLastModifiedBy()); item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setValue(swModule.getLastModifiedBy());
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_DATE).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_DATE)
SPDateTimeUtil.getFormattedDate(swModule.getCreatedAt())); .setValue(SPDateTimeUtil.getFormattedDate(swModule.getCreatedAt()));
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE)
SPDateTimeUtil.getFormattedDate(swModule.getLastModifiedAt())); .setValue(SPDateTimeUtil.getFormattedDate(swModule.getLastModifiedAt()));
item.getItemProperty(SPUILabelDefinitions.VAR_COLOR).setValue(swModule.getType().getColour()); item.getItemProperty(SPUILabelDefinitions.VAR_COLOR).setValue(swModule.getType().getColour());
if (!manageDistUIState.getSelectedSoftwareModules().isEmpty()) { if (!manageDistUIState.getSelectedSoftwareModules().isEmpty()) {

View File

@@ -343,9 +343,8 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button
} }
private void enableDisableSaveButton(final boolean validationFailed, final String query) { private void enableDisableSaveButton(final boolean validationFailed, final String query) {
if (validationFailed if (validationFailed || (isNameAndQueryEmpty(nameTextField.getValue(), query)
|| (isNameAndQueryEmpty(nameTextField.getValue(), query) || (query.equals(oldFilterQuery) && nameTextField || (query.equals(oldFilterQuery) && nameTextField.getValue().equals(oldFilterName)))) {
.getValue().equals(oldFilterName)))) {
saveButton.setEnabled(false); saveButton.setEnabled(false);
} else { } else {
if (hasSavePermission()) { if (hasSavePermission()) {
@@ -444,8 +443,8 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button
targetFilterQuery.setName(nameTextField.getValue()); targetFilterQuery.setName(nameTextField.getValue());
targetFilterQuery.setQuery(queryTextField.getValue()); targetFilterQuery.setQuery(queryTextField.getValue());
targetFilterQueryManagement.createTargetFilterQuery(targetFilterQuery); targetFilterQueryManagement.createTargetFilterQuery(targetFilterQuery);
notification.displaySuccess(i18n.get("message.create.filter.success", notification.displaySuccess(
new Object[] { targetFilterQuery.getName() })); i18n.get("message.create.filter.success", new Object[] { targetFilterQuery.getName() }));
eventBus.publish(this, CustomFilterUIEvent.CREATE_TARGET_FILTER_QUERY); eventBus.publish(this, CustomFilterUIEvent.CREATE_TARGET_FILTER_QUERY);
} }

View File

@@ -100,8 +100,8 @@ public class CreateOrUpdateFilterTable extends Table {
if (filterManagementUIState.isCreateFilterViewDisplayed()) { if (filterManagementUIState.isCreateFilterViewDisplayed()) {
filterManagementUIState.setFilterQueryValue(null); filterManagementUIState.setFilterQueryValue(null);
} else { } else {
filterManagementUIState.getTfQuery().ifPresent( filterManagementUIState.getTfQuery()
value -> filterManagementUIState.setFilterQueryValue(value.getQuery())); .ifPresent(value -> filterManagementUIState.setFilterQueryValue(value.getQuery()));
} }
} }
@@ -117,8 +117,9 @@ public class CreateOrUpdateFilterTable extends Table {
targetQF.setQueryConfiguration(queryConfig); targetQF.setQueryConfiguration(queryConfig);
// create lazy query container with lazy defination and query // create lazy query container with lazy defination and query
final LazyQueryContainer targetTableContainer = new LazyQueryContainer(new LazyQueryDefinition(true, final LazyQueryContainer targetTableContainer = new LazyQueryContainer(
SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_CONT_ID_NAME), targetQF); new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_CONT_ID_NAME),
targetQF);
targetTableContainer.getQueryView().getQueryDefinition().setMaxNestedPropertyDepth(PROPERTY_DEPT); targetTableContainer.getQueryView().getQueryDefinition().setMaxNestedPropertyDepth(PROPERTY_DEPT);
return targetTableContainer; return targetTableContainer;
@@ -178,12 +179,12 @@ public class CreateOrUpdateFilterTable extends Table {
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.1F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), 0.1F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"), columnList.add(
0.1F)); new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"), 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER, i18n columnList.add(new TableColumn(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER,
.get("header.assigned.ds"), 0.125F)); i18n.get("header.assigned.ds"), 0.125F));
columnList.add(new TableColumn(SPUILabelDefinitions.INSTALLED_DISTRIBUTION_NAME_VER, i18n columnList.add(new TableColumn(SPUILabelDefinitions.INSTALLED_DISTRIBUTION_NAME_VER,
.get("header.installed.ds"), 0.125F)); i18n.get("header.installed.ds"), 0.125F));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.1F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.1F));
columnList.add(new TableColumn(SPUILabelDefinitions.STATUS_ICON, i18n.get("header.target.status"), 0.1F)); columnList.add(new TableColumn(SPUILabelDefinitions.STATUS_ICON, i18n.get("header.target.status"), 0.1F));
return columnList; return columnList;
@@ -191,8 +192,8 @@ public class CreateOrUpdateFilterTable extends Table {
private Component getStatusIcon(final Object itemId) { private Component getStatusIcon(final Object itemId) {
final Item row1 = getItem(itemId); final Item row1 = getItem(itemId);
final TargetUpdateStatus targetStatus = (TargetUpdateStatus) row1.getItemProperty( final TargetUpdateStatus targetStatus = (TargetUpdateStatus) row1
SPUILabelDefinitions.VAR_TARGET_STATUS).getValue(); .getItemProperty(SPUILabelDefinitions.VAR_TARGET_STATUS).getValue();
final Label label = SPUIComponentProvider.getLabel("", SPUILabelDefinitions.SP_LABEL_SIMPLE); final Label label = SPUIComponentProvider.getLabel("", SPUILabelDefinitions.SP_LABEL_SIMPLE);
label.setContentMode(ContentMode.HTML); label.setContentMode(ContentMode.HTML);
if (targetStatus == TargetUpdateStatus.PENDING) { if (targetStatus == TargetUpdateStatus.PENDING) {

View File

@@ -99,11 +99,11 @@ public class CustomTargetBeanQuery extends AbstractBeanQuery<ProxyTarget> {
Slice<Target> targetBeans; Slice<Target> targetBeans;
final List<ProxyTarget> proxyTargetBeans = new ArrayList<>(); final List<ProxyTarget> proxyTargetBeans = new ArrayList<>();
if (!Strings.isNullOrEmpty(filterQuery)) { if (!Strings.isNullOrEmpty(filterQuery)) {
targetBeans = targetManagement.findTargetsAll(filterQuery, new PageRequest(startIndex targetBeans = targetManagement.findTargetsAll(filterQuery,
/ SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort)); new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort));
} else { } else {
targetBeans = targetManagement.findTargetsAll(new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, targetBeans = targetManagement.findTargetsAll(
SPUIDefinitions.PAGE_SIZE, sort)); new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort));
} }
for (final Target targ : targetBeans) { for (final Target targ : targetBeans) {
@@ -135,8 +135,8 @@ public class CustomTargetBeanQuery extends AbstractBeanQuery<ProxyTarget> {
prxyTarget.setUpdateStatus(targ.getTargetInfo().getUpdateStatus()); prxyTarget.setUpdateStatus(targ.getTargetInfo().getUpdateStatus());
prxyTarget.setLastTargetQuery(targ.getTargetInfo().getLastTargetQuery()); prxyTarget.setLastTargetQuery(targ.getTargetInfo().getLastTargetQuery());
prxyTarget.setTargetInfo(targ.getTargetInfo()); prxyTarget.setTargetInfo(targ.getTargetInfo());
prxyTarget.setPollStatusToolTip(HawkbitCommonUtil.getPollStatusToolTip(prxyTarget.getTargetInfo() prxyTarget.setPollStatusToolTip(
.getPollStatus(), getI18N())); HawkbitCommonUtil.getPollStatusToolTip(prxyTarget.getTargetInfo().getPollStatus(), getI18N()));
proxyTargetBeans.add(prxyTarget); proxyTargetBeans.add(prxyTarget);
} }
return proxyTargetBeans; return proxyTargetBeans;

View File

@@ -106,8 +106,8 @@ public final class FilterQueryValidation {
public static List<String> processExpectedTokens(final List<Integer> expectedTokens) { public static List<String> processExpectedTokens(final List<Integer> expectedTokens) {
final List<String> expectToken = new ArrayList<>(); final List<String> expectToken = new ArrayList<>();
if (expectedTokens.size() == 2 && expectedTokens.contains(9) && expectedTokens.contains(4)) { if (expectedTokens.size() == 2 && expectedTokens.contains(9) && expectedTokens.contains(4)) {
final List<String> expectedFieldList = Arrays.stream(TargetFields.values()) final List<String> expectedFieldList = Arrays.stream(TargetFields.values()).map(v -> v.name().toLowerCase())
.map(v -> v.name().toLowerCase()).collect(Collectors.toList()); .collect(Collectors.toList());
expectToken.addAll(expectedFieldList); expectToken.addAll(expectedFieldList);
expectToken.add("assignedds.name"); expectToken.add("assignedds.name");
expectToken.add("assignedds.version"); expectToken.add("assignedds.version");

View File

@@ -112,11 +112,11 @@ public class TargetFilterBeanQuery extends AbstractBeanQuery<ProxyTargetFilter>
@Override @Override
public int size() { public int size() {
if (Strings.isNullOrEmpty(searchText)) { if (Strings.isNullOrEmpty(searchText)) {
firstPageTargetFilter = getTargetFilterQueryManagement().findAllTargetFilterQuery( firstPageTargetFilter = getTargetFilterQueryManagement()
new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort)); .findAllTargetFilterQuery(new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort));
} else { } else {
firstPageTargetFilter = getTargetFilterQueryManagement().findTargetFilterQueryByFilters( firstPageTargetFilter = getTargetFilterQueryManagement()
new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort), searchText); .findTargetFilterQueryByFilters(new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort), searchText);
} }
final long size = firstPageTargetFilter.getTotalElements(); final long size = firstPageTargetFilter.getTotalElements();

View File

@@ -103,15 +103,14 @@ public class TargetFilterTable extends Table {
@EventBusListenerMethod(scope = EventScope.SESSION) @EventBusListenerMethod(scope = EventScope.SESSION)
void onEvent(final CustomFilterUIEvent filterEvent) { void onEvent(final CustomFilterUIEvent filterEvent) {
UI.getCurrent().access( UI.getCurrent().access(() -> {
() -> { if (filterEvent == CustomFilterUIEvent.FILTER_BY_CUST_FILTER_TEXT
if (filterEvent == CustomFilterUIEvent.FILTER_BY_CUST_FILTER_TEXT || filterEvent == CustomFilterUIEvent.FILTER_BY_CUST_FILTER_TEXT_REMOVE
|| filterEvent == CustomFilterUIEvent.FILTER_BY_CUST_FILTER_TEXT_REMOVE || filterEvent == CustomFilterUIEvent.CREATE_TARGET_FILTER_QUERY
|| filterEvent == CustomFilterUIEvent.CREATE_TARGET_FILTER_QUERY || filterEvent == CustomFilterUIEvent.UPDATED_TARGET_FILTER_QUERY) {
|| filterEvent == CustomFilterUIEvent.UPDATED_TARGET_FILTER_QUERY) { refreshContainer();
refreshContainer(); }
} });
});
} }
/** /**
@@ -126,8 +125,8 @@ public class TargetFilterTable extends Table {
targetQF.setQueryConfiguration(queryConfig); targetQF.setQueryConfiguration(queryConfig);
// create lazy query container with lazy defination and query // create lazy query container with lazy defination and query
final LazyQueryContainer targetFilterContainer = new LazyQueryContainer(new LazyQueryDefinition(true, final LazyQueryContainer targetFilterContainer = new LazyQueryContainer(
SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_ID), targetQF); new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_ID), targetQF);
targetFilterContainer.getQueryView().getQueryDefinition().setMaxNestedPropertyDepth(PROPERTY_DEPT); targetFilterContainer.getQueryView().getQueryDefinition().setMaxNestedPropertyDepth(PROPERTY_DEPT);
return targetFilterContainer; return targetFilterContainer;
@@ -136,8 +135,8 @@ public class TargetFilterTable extends Table {
private Map<String, Object> prepareQueryConfigFilters() { private Map<String, Object> prepareQueryConfigFilters() {
final Map<String, Object> queryConfig = new HashMap<String, Object>(); final Map<String, Object> queryConfig = new HashMap<String, Object>();
filterManagementUIState.getCustomFilterSearchText().ifPresent( filterManagementUIState.getCustomFilterSearchText()
value -> queryConfig.put(SPUIDefinitions.FILTER_BY_TEXT, value)); .ifPresent(value -> queryConfig.put(SPUIDefinitions.FILTER_BY_TEXT, value));
return queryConfig; return queryConfig;
} }
@@ -206,8 +205,8 @@ public class TargetFilterTable extends Table {
* of the deleted custom filter. * of the deleted custom filter.
*/ */
notification.displaySuccess(i18n.get("message.delete.filter.success", notification.displaySuccess(
new Object[] { deletedFilterName })); i18n.get("message.delete.filter.success", new Object[] { deletedFilterName }));
refreshContainer(); refreshContainer();
} }
}); });

View File

@@ -201,14 +201,16 @@ public class LoginView extends VerticalLayout implements View, EnvironmentAware
private void buildPasswordField() { private void buildPasswordField() {
password = new PasswordField(i18n.get("label.login.password")); password = new PasswordField(i18n.get("label.login.password"));
password.setIcon(FontAwesome.LOCK); password.setIcon(FontAwesome.LOCK);
password.addStyleName(ValoTheme.TEXTFIELD_INLINE_ICON + " " + ValoTheme.TEXTFIELD_SMALL + " " + LOGIN_TEXTFIELD); password.addStyleName(
ValoTheme.TEXTFIELD_INLINE_ICON + " " + ValoTheme.TEXTFIELD_SMALL + " " + LOGIN_TEXTFIELD);
password.setId("login-password"); password.setId("login-password");
} }
private void buildUserField() { private void buildUserField() {
username = new TextField(i18n.get("label.login.username")); username = new TextField(i18n.get("label.login.username"));
username.setIcon(FontAwesome.USER); username.setIcon(FontAwesome.USER);
username.addStyleName(ValoTheme.TEXTFIELD_INLINE_ICON + " " + ValoTheme.TEXTFIELD_SMALL + " " + LOGIN_TEXTFIELD); username.addStyleName(
ValoTheme.TEXTFIELD_INLINE_ICON + " " + ValoTheme.TEXTFIELD_SMALL + " " + LOGIN_TEXTFIELD);
username.setId("login-username"); username.setId("login-username");
} }
@@ -216,8 +218,8 @@ public class LoginView extends VerticalLayout implements View, EnvironmentAware
if (multiTenancyIndicator.isMultiTenancySupported()) { if (multiTenancyIndicator.isMultiTenancySupported()) {
tenant = new TextField(i18n.get("label.login.tenant")); tenant = new TextField(i18n.get("label.login.tenant"));
tenant.setIcon(FontAwesome.DATABASE); tenant.setIcon(FontAwesome.DATABASE);
tenant.addStyleName(ValoTheme.TEXTFIELD_INLINE_ICON + " " + ValoTheme.TEXTFIELD_SMALL + " " tenant.addStyleName(
+ LOGIN_TEXTFIELD); ValoTheme.TEXTFIELD_INLINE_ICON + " " + ValoTheme.TEXTFIELD_SMALL + " " + LOGIN_TEXTFIELD);
tenant.addStyleName("uppercase"); tenant.addStyleName("uppercase");
tenant.setId("login-tenant"); tenant.setId("login-tenant");
} }

View File

@@ -110,7 +110,8 @@ public class DeploymentView extends VerticalLayout implements View, BrowserWindo
void onEvent(final DistributionTableEvent event) { void onEvent(final DistributionTableEvent event) {
if (event.getDistributionComponentEvent() == DistributionTableEvent.DistributionComponentEvent.MINIMIZED) { if (event.getDistributionComponentEvent() == DistributionTableEvent.DistributionComponentEvent.MINIMIZED) {
minimizeDistTable(); minimizeDistTable();
} else if (event.getDistributionComponentEvent() == DistributionTableEvent.DistributionComponentEvent.MAXIMIZED) { } else if (event
.getDistributionComponentEvent() == DistributionTableEvent.DistributionComponentEvent.MAXIMIZED) {
maximizeDistTable(); maximizeDistTable();
} }
} }

View File

@@ -190,8 +190,8 @@ public class DistributionAddUpdateWindowLayout extends VerticalLayout {
saveDistribution.addClickListener(event -> saveDistribution()); saveDistribution.addClickListener(event -> saveDistribution());
/* close button */ /* close button */
discardDistribution = SPUIComponentProvider.getButton(SPUIComponetIdProvider.DIST_ADD_DISCARD, "", "", "", discardDistribution = SPUIComponentProvider.getButton(SPUIComponetIdProvider.DIST_ADD_DISCARD, "", "", "", true,
true, FontAwesome.TIMES, SPUIButtonStyleSmallNoBorder.class); FontAwesome.TIMES, SPUIButtonStyleSmallNoBorder.class);
discardDistribution.addClickListener(event -> discardDistribution()); discardDistribution.addClickListener(event -> discardDistribution());
} }
@@ -206,8 +206,8 @@ public class DistributionAddUpdateWindowLayout extends VerticalLayout {
DistributionSetTypeBeanQuery.class); DistributionSetTypeBeanQuery.class);
dtQF.setQueryConfiguration(queryConfig); dtQF.setQueryConfiguration(queryConfig);
final LazyQueryContainer disttypeContainer = new LazyQueryContainer(new LazyQueryDefinition(true, final LazyQueryContainer disttypeContainer = new LazyQueryContainer(
SPUIDefinitions.DIST_TYPE_SIZE, SPUILabelDefinitions.VAR_NAME), dtQF); new LazyQueryDefinition(true, SPUIDefinitions.DIST_TYPE_SIZE, SPUILabelDefinitions.VAR_NAME), dtQF);
disttypeContainer.addContainerProperty(SPUILabelDefinitions.VAR_NAME, String.class, "", true, true); disttypeContainer.addContainerProperty(SPUILabelDefinitions.VAR_NAME, String.class, "", true, true);
@@ -219,8 +219,8 @@ public class DistributionAddUpdateWindowLayout extends VerticalLayout {
} }
private DistributionSetType getDefaultDistributionSetType() { private DistributionSetType getDefaultDistributionSetType() {
final TenantMetaData tenantMetaData = tenantMetaDataRepository.findByTenantIgnoreCase(systemManagement final TenantMetaData tenantMetaData = tenantMetaDataRepository
.currentTenant()); .findByTenantIgnoreCase(systemManagement.currentTenant());
return tenantMetaData.getDefaultDsType(); return tenantMetaData.getDefaultDsType();
} }
@@ -259,12 +259,12 @@ public class DistributionAddUpdateWindowLayout extends VerticalLayout {
notificationMessage.displaySuccess(i18n.get("message.new.dist.save.success", notificationMessage.displaySuccess(i18n.get("message.new.dist.save.success",
new Object[] { currentDS.getName(), currentDS.getVersion() })); new Object[] { currentDS.getName(), currentDS.getVersion() }));
// update table row+details layout // update table row+details layout
eventBus.publish(this, new DistributionTableEvent(DistributionComponentEvent.EDIT_DISTRIBUTION, eventBus.publish(this,
currentDS)); new DistributionTableEvent(DistributionComponentEvent.EDIT_DISTRIBUTION, currentDS));
} catch (final EntityAlreadyExistsException entityAlreadyExistsException) { } catch (final EntityAlreadyExistsException entityAlreadyExistsException) {
LOG.error("Update distribution failed {}", entityAlreadyExistsException); LOG.error("Update distribution failed {}", entityAlreadyExistsException);
notificationMessage.displayValidationError(i18n.get("message.distribution.no.update", notificationMessage.displayValidationError(
currentDS.getName() + ":" + currentDS.getVersion())); i18n.get("message.distribution.no.update", currentDS.getName() + ":" + currentDS.getVersion()));
} }
closeThisWindow(); closeThisWindow();
} }
@@ -361,8 +361,8 @@ public class DistributionAddUpdateWindowLayout extends VerticalLayout {
if (existingDs != null && (!editDistribution || editDistribution && !existingDs.getId().equals(editDistId))) { if (existingDs != null && (!editDistribution || editDistribution && !existingDs.getId().equals(editDistId))) {
distNameTextField.addStyleName("v-textfield-error"); distNameTextField.addStyleName("v-textfield-error");
distVersionTextField.addStyleName("v-textfield-error"); distVersionTextField.addStyleName("v-textfield-error");
notificationMessage.displayValidationError(i18n.get("message.duplicate.dist", notificationMessage.displayValidationError(
new Object[] { existingDs.getName(), existingDs.getVersion() })); i18n.get("message.duplicate.dist", new Object[] { existingDs.getName(), existingDs.getVersion() }));
return false; return false;
} else { } else {

View File

@@ -84,7 +84,8 @@ public class DistributionBeanQuery extends AbstractBeanQuery<ProxyDistribution>
sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortPropertyIds[0]); sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortPropertyIds[0]);
// Add sort // Add sort
for (int distId = 1; distId < sortPropertyIds.length; distId++) { for (int distId = 1; distId < sortPropertyIds.length; distId++) {
sort.and(new Sort(sortStates[distId] ? Direction.ASC : Direction.DESC, (String) sortPropertyIds[distId])); sort.and(new Sort(sortStates[distId] ? Direction.ASC : Direction.DESC,
(String) sortPropertyIds[distId]));
} }
} }
} }
@@ -112,8 +113,8 @@ public class DistributionBeanQuery extends AbstractBeanQuery<ProxyDistribution>
pinnedControllerId); pinnedControllerId);
} else if (distributionTags.isEmpty() && Strings.isNullOrEmpty(searchText) && !noTagClicked) { } else if (distributionTags.isEmpty() && Strings.isNullOrEmpty(searchText) && !noTagClicked) {
// if no search filters available // if no search filters available
distBeans = getDistributionSetManagement().findDistributionSetsAll( distBeans = getDistributionSetManagement()
new OffsetBasedPageRequest(startIndex, count, sort), false, true); .findDistributionSetsAll(new OffsetBasedPageRequest(startIndex, count, sort), false, true);
} else { } else {
final DistributionSetFilter distributionSetFilter = new DistributionSetFilterBuilder().setIsDeleted(false) final DistributionSetFilter distributionSetFilter = new DistributionSetFilterBuilder().setIsDeleted(false)
.setIsComplete(true).setSearchText(searchText).setSelectDSWithNoTag(noTagClicked) .setIsComplete(true).setSearchText(searchText).setSelectDSWithNoTag(noTagClicked)
@@ -134,8 +135,8 @@ public class DistributionBeanQuery extends AbstractBeanQuery<ProxyDistribution>
proxyDistribution.setDescription(distributionSet.getDescription()); proxyDistribution.setDescription(distributionSet.getDescription());
proxyDistribution.setCreatedByUser(HawkbitCommonUtil.getIMUser(distributionSet.getCreatedBy())); proxyDistribution.setCreatedByUser(HawkbitCommonUtil.getIMUser(distributionSet.getCreatedBy()));
proxyDistribution.setModifiedByUser(HawkbitCommonUtil.getIMUser(distributionSet.getLastModifiedBy())); proxyDistribution.setModifiedByUser(HawkbitCommonUtil.getIMUser(distributionSet.getLastModifiedBy()));
proxyDistribution.setNameVersion(HawkbitCommonUtil.getFormattedNameVersion(distributionSet.getName(), proxyDistribution.setNameVersion(
distributionSet.getVersion())); HawkbitCommonUtil.getFormattedNameVersion(distributionSet.getName(), distributionSet.getVersion()));
proxyDistributions.add(proxyDistribution); proxyDistributions.add(proxyDistribution);
} }
return proxyDistributions; return proxyDistributions;
@@ -154,8 +155,8 @@ public class DistributionBeanQuery extends AbstractBeanQuery<ProxyDistribution>
pinnedControllerId); pinnedControllerId);
} else if (distributionTags.isEmpty() && Strings.isNullOrEmpty(searchText) && !noTagClicked) { } else if (distributionTags.isEmpty() && Strings.isNullOrEmpty(searchText) && !noTagClicked) {
// if no search filters available // if no search filters available
firstPageDistributionSets = getDistributionSetManagement().findDistributionSetsAll( firstPageDistributionSets = getDistributionSetManagement()
new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort), false, true); .findDistributionSetsAll(new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort), false, true);
} else { } else {
final DistributionSetFilter distributionSetFilter = new DistributionSetFilterBuilder().setIsDeleted(false) final DistributionSetFilter distributionSetFilter = new DistributionSetFilterBuilder().setIsDeleted(false)
.setIsComplete(true).setSearchText(searchText).setSelectDSWithNoTag(noTagClicked) .setIsComplete(true).setSearchText(searchText).setSelectDSWithNoTag(noTagClicked)

View File

@@ -95,7 +95,8 @@ public class DistributionDetails extends AbstractTableDetailsLayout {
@EventBusListenerMethod(scope = EventScope.SESSION) @EventBusListenerMethod(scope = EventScope.SESSION)
void onEvent(final DistributionTableEvent distributionTableEvent) { void onEvent(final DistributionTableEvent distributionTableEvent) {
if (distributionTableEvent.getDistributionComponentEvent() == DistributionComponentEvent.ON_VALUE_CHANGE if (distributionTableEvent.getDistributionComponentEvent() == DistributionComponentEvent.ON_VALUE_CHANGE
|| distributionTableEvent.getDistributionComponentEvent() == DistributionComponentEvent.EDIT_DISTRIBUTION) { || distributionTableEvent
.getDistributionComponentEvent() == DistributionComponentEvent.EDIT_DISTRIBUTION) {
ui.access(() -> { ui.access(() -> {
/** /**
* distributionTableEvent.getDistributionSet() is null when * distributionTableEvent.getDistributionSet() is null when
@@ -175,8 +176,8 @@ public class DistributionDetails extends AbstractTableDetailsLayout {
*/ */
@Override @Override
protected Boolean onLoadIsTableRowSelected() { protected Boolean onLoadIsTableRowSelected() {
return !(managementUIState.getSelectedDsIdName().isPresent() && managementUIState.getSelectedDsIdName().get() return !(managementUIState.getSelectedDsIdName().isPresent()
.isEmpty()); && managementUIState.getSelectedDsIdName().get().isEmpty());
} }
/* /*
@@ -289,9 +290,9 @@ public class DistributionDetails extends AbstractTableDetailsLayout {
} }
if (isMigrationRequired != null) { if (isMigrationRequired != null) {
detailsTabLayout.addComponent(SPUIComponentProvider.createNameValueLabel( detailsTabLayout.addComponent(
i18n.get("checkbox.dist.migration.required"), SPUIComponentProvider.createNameValueLabel(i18n.get("checkbox.dist.migration.required"),
isMigrationRequired.equals(Boolean.TRUE) ? i18n.get("label.yes") : i18n.get("label.no"))); isMigrationRequired.equals(Boolean.TRUE) ? i18n.get("label.yes") : i18n.get("label.no")));
} }
} }

View File

@@ -191,13 +191,12 @@ public class DistributionTable extends AbstractTable {
@EventBusListenerMethod(scope = EventScope.SESSION) @EventBusListenerMethod(scope = EventScope.SESSION)
void onEvent(final ManagementUIEvent managementUIEvent) { void onEvent(final ManagementUIEvent managementUIEvent) {
UI.getCurrent().access( UI.getCurrent().access(() -> {
() -> { if (managementUIEvent == ManagementUIEvent.UNASSIGN_DISTRIBUTION_TAG
if (managementUIEvent == ManagementUIEvent.UNASSIGN_DISTRIBUTION_TAG || managementUIEvent == ManagementUIEvent.ASSIGN_DISTRIBUTION_TAG) {
|| managementUIEvent == ManagementUIEvent.ASSIGN_DISTRIBUTION_TAG) { refreshFilter();
refreshFilter(); }
} });
});
} }
/* /*
@@ -226,8 +225,8 @@ public class DistributionTable extends AbstractTable {
managementUIState.getDistributionTableFilters().getPinnedTargetId() managementUIState.getDistributionTableFilters().getPinnedTargetId()
.ifPresent(value -> queryConfiguration.put(SPUIDefinitions.ORDER_BY_PINNED_TARGET, value)); .ifPresent(value -> queryConfiguration.put(SPUIDefinitions.ORDER_BY_PINNED_TARGET, value));
final List<String> list = new ArrayList<String>(); final List<String> list = new ArrayList<String>();
queryConfiguration.put(SPUIDefinitions.FILTER_BY_NO_TAG, managementUIState.getDistributionTableFilters() queryConfiguration.put(SPUIDefinitions.FILTER_BY_NO_TAG,
.isNoTagSelected()); managementUIState.getDistributionTableFilters().isNoTagSelected());
if (!managementUIState.getDistributionTableFilters().getDistSetTags().isEmpty()) { if (!managementUIState.getDistributionTableFilters().getDistSetTags().isEmpty()) {
list.addAll(managementUIState.getDistributionTableFilters().getDistSetTags()); list.addAll(managementUIState.getDistributionTableFilters().getDistSetTags());
} }
@@ -235,8 +234,9 @@ public class DistributionTable extends AbstractTable {
final BeanQueryFactory<DistributionBeanQuery> distributionQF = new BeanQueryFactory<DistributionBeanQuery>( final BeanQueryFactory<DistributionBeanQuery> distributionQF = new BeanQueryFactory<DistributionBeanQuery>(
DistributionBeanQuery.class); DistributionBeanQuery.class);
distributionQF.setQueryConfiguration(queryConfiguration); distributionQF.setQueryConfiguration(queryConfiguration);
final LazyQueryContainer distributionContainer = new LazyQueryContainer(new LazyQueryDefinition(true, final LazyQueryContainer distributionContainer = new LazyQueryContainer(
SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME), distributionQF); new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME),
distributionQF);
return distributionContainer; return distributionContainer;
} }
@@ -321,8 +321,8 @@ public class DistributionTable extends AbstractTable {
managementUIState.setLastSelectedDsIdName(value); managementUIState.setLastSelectedDsIdName(value);
final DistributionSet lastSelectedDistSet = distributionSetManagement final DistributionSet lastSelectedDistSet = distributionSetManagement
.findDistributionSetByIdWithDetails(value.getId()); .findDistributionSetByIdWithDetails(value.getId());
eventBus.publish(this, new DistributionTableEvent(DistributionComponentEvent.ON_VALUE_CHANGE, eventBus.publish(this,
lastSelectedDistSet)); new DistributionTableEvent(DistributionComponentEvent.ON_VALUE_CHANGE, lastSelectedDistSet));
} }
} else { } else {
managementUIState.setSelectedDsIdName(null); managementUIState.setSelectedDsIdName(null);
@@ -422,15 +422,15 @@ public class DistributionTable extends AbstractTable {
private void assignTargetTag(final DragAndDropEvent event) { private void assignTargetTag(final DragAndDropEvent event) {
final AbstractSelectTargetDetails dropData = (AbstractSelectTargetDetails) event.getTargetDetails(); final AbstractSelectTargetDetails dropData = (AbstractSelectTargetDetails) event.getTargetDetails();
final Object distItemId = dropData.getItemIdOver(); final Object distItemId = dropData.getItemIdOver();
final String targetTagName = HawkbitCommonUtil.removePrefix(event.getTransferable().getSourceComponent() final String targetTagName = HawkbitCommonUtil.removePrefix(
.getId(), SPUIDefinitions.TARGET_TAG_ID_PREFIXS); event.getTransferable().getSourceComponent().getId(), SPUIDefinitions.TARGET_TAG_ID_PREFIXS);
// get all the targets assigned to the tag // get all the targets assigned to the tag
// assign dist to those targets // assign dist to those targets
final List<Target> assignedTargets = targetService.findTargetsByTag(targetTagName); final List<Target> assignedTargets = targetService.findTargetsByTag(targetTagName);
if (!assignedTargets.isEmpty()) { if (!assignedTargets.isEmpty()) {
final Set<TargetIdName> targetDetailsList = new HashSet<TargetIdName>(); final Set<TargetIdName> targetDetailsList = new HashSet<TargetIdName>();
assignedTargets.forEach(target -> targetDetailsList.add(new TargetIdName(target.getId(), target assignedTargets.forEach(target -> targetDetailsList
.getControllerId(), target.getName()))); .add(new TargetIdName(target.getId(), target.getControllerId(), target.getName())));
assignTargetToDs(getItem(distItemId), targetDetailsList); assignTargetToDs(getItem(distItemId), targetDetailsList);
} else { } else {
notification.displaySuccess(i18n.get("message.no.targets.assiged.fortag", new Object[] { targetTagName })); notification.displaySuccess(i18n.get("message.no.targets.assiged.fortag", new Object[] { targetTagName }));
@@ -461,7 +461,8 @@ public class DistributionTable extends AbstractTable {
final Long distId = (Long) item.getItemProperty("id").getValue(); final Long distId = (Long) item.getItemProperty("id").getValue();
final String distName = (String) item.getItemProperty("name").getValue(); final String distName = (String) item.getItemProperty("name").getValue();
final String distVersion = (String) item.getItemProperty("version").getValue(); final String distVersion = (String) item.getItemProperty("version").getValue();
final DistributionSetIdName distributionSetIdName = new DistributionSetIdName(distId, distName, distVersion); final DistributionSetIdName distributionSetIdName = new DistributionSetIdName(distId, distName,
distVersion);
showOrHidePopupAndNotification(validate(targetDetailsList, distributionSetIdName)); showOrHidePopupAndNotification(validate(targetDetailsList, distributionSetIdName));
} }
} }
@@ -513,8 +514,8 @@ public class DistributionTable extends AbstractTable {
private Boolean isNoTagButton(final String tagData, final String targetNoTagData) { private Boolean isNoTagButton(final String tagData, final String targetNoTagData) {
if (tagData.equals(targetNoTagData)) { if (tagData.equals(targetNoTagData)) {
notification.displayValidationError(i18n.get("message.tag.cannot.be.assigned", notification.displayValidationError(
new Object[] { i18n.get("label.no.tag.assigned") })); i18n.get("message.tag.cannot.be.assigned", new Object[] { i18n.get("label.no.tag.assigned") }));
return true; return true;
} }
return false; return false;
@@ -529,7 +530,8 @@ public class DistributionTable extends AbstractTable {
* @param distName * @param distName
* @return String as indicator * @return String as indicator
*/ */
private String validate(final Set<TargetIdName> targetDetailsList, final DistributionSetIdName distributionSetIdName) { private String validate(final Set<TargetIdName> targetDetailsList,
final DistributionSetIdName distributionSetIdName) {
String pendingActionMessage = null; String pendingActionMessage = null;
for (final TargetIdName trgtNameId : targetDetailsList) { for (final TargetIdName trgtNameId : targetDetailsList) {
if (null != trgtNameId) { if (null != trgtNameId) {
@@ -581,18 +583,18 @@ public class DistributionTable extends AbstractTable {
} }
private void updateDistributionInTable(final DistributionSet editedDs) { private void updateDistributionInTable(final DistributionSet editedDs) {
final Item item = getContainerDataSource().getItem( final Item item = getContainerDataSource()
new DistributionSetIdName(editedDs.getId(), editedDs.getName(), editedDs.getVersion())); .getItem(new DistributionSetIdName(editedDs.getId(), editedDs.getName(), editedDs.getVersion()));
item.getItemProperty(SPUILabelDefinitions.VAR_NAME).setValue(editedDs.getName()); item.getItemProperty(SPUILabelDefinitions.VAR_NAME).setValue(editedDs.getName());
item.getItemProperty(SPUILabelDefinitions.VAR_VERSION).setValue(editedDs.getVersion()); item.getItemProperty(SPUILabelDefinitions.VAR_VERSION).setValue(editedDs.getVersion());
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_BY).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_BY)
HawkbitCommonUtil.getIMUser(editedDs.getCreatedBy())); .setValue(HawkbitCommonUtil.getIMUser(editedDs.getCreatedBy()));
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_DATE).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_DATE)
SPDateTimeUtil.getFormattedDate(editedDs.getCreatedAt())); .setValue(SPDateTimeUtil.getFormattedDate(editedDs.getCreatedAt()));
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY)
HawkbitCommonUtil.getIMUser(editedDs.getLastModifiedBy())); .setValue(HawkbitCommonUtil.getIMUser(editedDs.getLastModifiedBy()));
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE)
SPDateTimeUtil.getFormattedDate(editedDs.getLastModifiedAt())); .setValue(SPDateTimeUtil.getFormattedDate(editedDs.getLastModifiedAt()));
item.getItemProperty(SPUILabelDefinitions.VAR_DESC).setValue(editedDs.getDescription()); item.getItemProperty(SPUILabelDefinitions.VAR_DESC).setValue(editedDs.getDescription());
} }
@@ -609,8 +611,8 @@ public class DistributionTable extends AbstractTable {
} }
private void styleDistributionTableOnPinning() { private void styleDistributionTableOnPinning() {
final Target targetObj = targetService.findTargetByControllerIDWithDetails(managementUIState final Target targetObj = targetService.findTargetByControllerIDWithDetails(
.getDistributionTableFilters().getPinnedTargetId().get()); managementUIState.getDistributionTableFilters().getPinnedTargetId().get());
if (targetObj != null) { if (targetObj != null) {
final DistributionSet assignedDistribution = targetObj.getAssignedDistributionSet(); final DistributionSet assignedDistribution = targetObj.getAssignedDistributionSet();

View File

@@ -280,8 +280,8 @@ public class CreateUpdateDistributionTagLayoutWindow extends CreateUpdateTagLayo
private Boolean checkIsDuplicate(final DistributionSetTag existingDistTag) { private Boolean checkIsDuplicate(final DistributionSetTag existingDistTag) {
if (existingDistTag != null) { if (existingDistTag != null) {
uiNotification.displayValidationError(i18n.get("message.tag.duplicate.check", uiNotification.displayValidationError(
new Object[] { existingDistTag.getName() })); i18n.get("message.tag.duplicate.check", new Object[] { existingDistTag.getName() }));
return Boolean.TRUE; return Boolean.TRUE;
} }
return Boolean.FALSE; return Boolean.FALSE;

View File

@@ -56,8 +56,8 @@ public class DistributionTagBeanQuery extends AbstractBeanQuery<ProxyTag> {
@Override @Override
public int size() { public int size() {
firstPageDsTag = getTagManagement().findAllDistributionSetTags( firstPageDsTag = getTagManagement()
new OffsetBasedPageRequest(0, SPUIDefinitions.PAGE_SIZE, sort)); .findAllDistributionSetTags(new OffsetBasedPageRequest(0, SPUIDefinitions.PAGE_SIZE, sort));
long size = firstPageDsTag.getTotalElements(); long size = firstPageDsTag.getTotalElements();
if (size > Integer.MAX_VALUE) { if (size > Integer.MAX_VALUE) {
size = Integer.MAX_VALUE; size = Integer.MAX_VALUE;
@@ -79,8 +79,8 @@ public class DistributionTagBeanQuery extends AbstractBeanQuery<ProxyTag> {
if (startIndex == 0 && firstPageDsTag != null) { if (startIndex == 0 && firstPageDsTag != null) {
dsTagBeans = firstPageDsTag; dsTagBeans = firstPageDsTag;
} else { } else {
dsTagBeans = getTagManagement().findAllDistributionSetTags( dsTagBeans = getTagManagement()
new OffsetBasedPageRequest(startIndex, count, sort)); .findAllDistributionSetTags(new OffsetBasedPageRequest(startIndex, count, sort));
} }
for (final DistributionSetTag tag : dsTagBeans) { for (final DistributionSetTag tag : dsTagBeans) {
final ProxyTag proxyTargetTag = new ProxyTag(); final ProxyTag proxyTargetTag = new ProxyTag();

View File

@@ -131,9 +131,8 @@ public class DistributionTagButtons extends AbstractFilterButtons {
final BeanQueryFactory<DistributionTagBeanQuery> tagQF = new BeanQueryFactory<DistributionTagBeanQuery>( final BeanQueryFactory<DistributionTagBeanQuery> tagQF = new BeanQueryFactory<DistributionTagBeanQuery>(
DistributionTagBeanQuery.class); DistributionTagBeanQuery.class);
tagQF.setQueryConfiguration(queryConfig); tagQF.setQueryConfiguration(queryConfig);
final LazyQueryContainer tagContainer = HawkbitCommonUtil final LazyQueryContainer tagContainer = HawkbitCommonUtil.createDSLazyQueryContainer(
.createDSLazyQueryContainer(new BeanQueryFactory<DistributionTagBeanQuery>( new BeanQueryFactory<DistributionTagBeanQuery>(DistributionTagBeanQuery.class));
DistributionTagBeanQuery.class));
return tagContainer; return tagContainer;
} }

View File

@@ -90,8 +90,8 @@ public class DistributionTagDropEvent implements DropHandler {
private Boolean isNoTagAssigned(final DragAndDropEvent event) { private Boolean isNoTagAssigned(final DragAndDropEvent event) {
final String tagName = ((DragAndDropWrapper) (event.getTargetDetails().getTarget())).getData().toString(); final String tagName = ((DragAndDropWrapper) (event.getTargetDetails().getTarget())).getData().toString();
if (tagName.equals(SPUIDefinitions.DISTRIBUTION_TAG_BUTTON)) { if (tagName.equals(SPUIDefinitions.DISTRIBUTION_TAG_BUTTON)) {
notification.displayValidationError(i18n.get("message.tag.cannot.be.assigned", notification.displayValidationError(
new Object[] { i18n.get("label.no.tag.assigned") })); i18n.get("message.tag.cannot.be.assigned", new Object[] { i18n.get("label.no.tag.assigned") }));
return false; return false;
} }
return true; return true;
@@ -176,8 +176,8 @@ public class DistributionTagDropEvent implements DropHandler {
SPUIDefinitions.DISTRIBUTION_TAG_ID_PREFIXS); SPUIDefinitions.DISTRIBUTION_TAG_ID_PREFIXS);
final List<String> tagsClickedList = distFilterParameters.getDistSetTags(); final List<String> tagsClickedList = distFilterParameters.getDistSetTags();
final DistributionSetTagAssigmentResult result = distributionSetManagement.toggleTagAssignment( final DistributionSetTagAssigmentResult result = distributionSetManagement.toggleTagAssignment(distributionList,
distributionList, distTagName); distTagName);
notification.displaySuccess(HawkbitCommonUtil.getDistributionTagAssignmentMsg(distTagName, result, i18n)); notification.displaySuccess(HawkbitCommonUtil.getDistributionTagAssignmentMsg(distTagName, result, i18n));
if (result.getUnassigned() >= 1 && !tagsClickedList.isEmpty()) { if (result.getUnassigned() >= 1 && !tagsClickedList.isEmpty()) {

View File

@@ -151,12 +151,13 @@ public class CountMessageLabel extends Label {
filterMesgBuf.append(getStatusMsg(targFilParams.getClickedStatusTargetTags(), status)); filterMesgBuf.append(getStatusMsg(targFilParams.getClickedStatusTargetTags(), status));
filterMesgBuf filterMesgBuf
.append(getTagsMsg(targFilParams.isNoTagSelected(), targFilParams.getClickedTargetTags(), tags)); .append(getTagsMsg(targFilParams.isNoTagSelected(), targFilParams.getClickedTargetTags(), tags));
filterMesgBuf.append(getSerachMsg(targFilParams.getSearchText().isPresent() ? targFilParams.getSearchText() filterMesgBuf.append(getSerachMsg(
.get() : null, text)); targFilParams.getSearchText().isPresent() ? targFilParams.getSearchText().get() : null, text));
filterMesgBuf.append(getDistMsg(targFilParams.getDistributionSet().isPresent() ? targFilParams filterMesgBuf.append(getDistMsg(
.getDistributionSet().get() : null, dists)); targFilParams.getDistributionSet().isPresent() ? targFilParams.getDistributionSet().get() : null,
filterMesgBuf.append(getCustomFilterMsg(targFilParams.getTargetFilterQuery().isPresent() ? targFilParams dists));
.getTargetFilterQuery().get() : null, custom)); filterMesgBuf.append(getCustomFilterMsg(targFilParams.getTargetFilterQuery().isPresent()
? targFilParams.getTargetFilterQuery().get() : null, custom));
final String filterMesageChk = filterMesgBuf.toString().trim(); final String filterMesageChk = filterMesgBuf.toString().trim();
String filterMesage = filterMesageChk; String filterMesage = filterMesageChk;
if (filterMesage.endsWith(",")) { if (filterMesage.endsWith(",")) {
@@ -237,8 +238,8 @@ public class CountMessageLabel extends Label {
* @return String as msg. * @return String as msg.
*/ */
private static String getTagsMsg(final Boolean noTargetTagSelected, final List<String> tags, final String param) { private static String getTagsMsg(final Boolean noTargetTagSelected, final List<String> tags, final String param) {
return tags.isEmpty() && (noTargetTagSelected == null || !noTargetTagSelected.booleanValue()) ? HawkbitCommonUtil.SP_STRING_SPACE return tags.isEmpty() && (noTargetTagSelected == null || !noTargetTagSelected.booleanValue())
: param; ? HawkbitCommonUtil.SP_STRING_SPACE : param;
} }
/** /**

View File

@@ -160,9 +160,9 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout {
void onEvent(final TargetTableEvent event) { void onEvent(final TargetTableEvent event) {
if (!managementUIState.isTargetTableMaximized()) { if (!managementUIState.isTargetTableMaximized()) {
if (TargetComponentEvent.BULK_TARGET_CREATED == event.getTargetComponentEvent()) { if (TargetComponentEvent.BULK_TARGET_CREATED == event.getTargetComponentEvent()) {
this.getUI().access( this.getUI()
() -> setUploadStatusButtonCaption(managementUIState.getTargetTableFilters().getBulkUpload() .access(() -> setUploadStatusButtonCaption(managementUIState.getTargetTableFilters()
.getFailedUploadCount() .getBulkUpload().getFailedUploadCount()
+ managementUIState.getTargetTableFilters().getBulkUpload().getSucessfulUploadCount())); + managementUIState.getTargetTableFilters().getBulkUpload().getSucessfulUploadCount()));
} else if (TargetComponentEvent.BULK_UPLOAD_COMPLETED == event.getTargetComponentEvent()) { } else if (TargetComponentEvent.BULK_UPLOAD_COMPLETED == event.getTargetComponentEvent()) {
this.getUI().access(() -> updateUploadBtnIconToComplete()); this.getUI().access(() -> updateUploadBtnIconToComplete());
@@ -581,7 +581,8 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout {
if (failedCount != 0 || successCount != 0) { if (failedCount != 0 || successCount != 0) {
setUploadStatusButtonCaption(failedCount + successCount); setUploadStatusButtonCaption(failedCount + successCount);
enableBulkUploadStatusButton(); enableBulkUploadStatusButton();
if (Math.abs(managementUIState.getTargetTableFilters().getBulkUpload().getProgressBarCurrentValue() - 1) < 0.00001) { if (Math.abs(managementUIState.getTargetTableFilters().getBulkUpload().getProgressBarCurrentValue()
- 1) < 0.00001) {
updateUploadBtnIconToComplete(); updateUploadBtnIconToComplete();
} else { } else {
updateUploadBtnIconToProgressIndicator(); updateUploadBtnIconToProgressIndicator();

View File

@@ -155,20 +155,18 @@ public class ManangementConfirmationWindowLayout extends AbstractConfirmationWin
assignmnetTab.getTable().setContainerDataSource(getAssignmentsTableContainer()); assignmnetTab.getTable().setContainerDataSource(getAssignmentsTableContainer());
// Add the discard action column // Add the discard action column
assignmnetTab.getTable().addGeneratedColumn( assignmnetTab.getTable().addGeneratedColumn(DISCARD_CHANGES, (source, itemId, columnId) -> {
DISCARD_CHANGES, final StringBuilder style = new StringBuilder(ValoTheme.BUTTON_TINY);
(source, itemId, columnId) -> { style.append(' ');
final StringBuilder style = new StringBuilder(ValoTheme.BUTTON_TINY); style.append(SPUIStyleDefinitions.REDICON);
style.append(' '); final Button deleteIcon = SPUIComponentProvider.getButton("", "", SPUILabelDefinitions.DISCARD,
style.append(SPUIStyleDefinitions.REDICON); style.toString(), true, FontAwesome.REPLY, SPUIButtonStyleSmallNoBorder.class);
final Button deleteIcon = SPUIComponentProvider.getButton("", "", SPUILabelDefinitions.DISCARD, deleteIcon.setData(itemId);
style.toString(), true, FontAwesome.REPLY, SPUIButtonStyleSmallNoBorder.class); deleteIcon.setImmediate(true);
deleteIcon.setData(itemId); deleteIcon.addClickListener(event -> discardAssignment(
deleteIcon.setImmediate(true); (TargetIdName) ((Button) event.getComponent()).getData(), assignmnetTab));
deleteIcon.addClickListener(event -> discardAssignment( return deleteIcon;
(TargetIdName) ((Button) event.getComponent()).getData(), assignmnetTab)); });
return deleteIcon;
});
// set the visible columns // set the visible columns
final List<Object> visibleColumnIds = new ArrayList<>(); final List<Object> visibleColumnIds = new ArrayList<>();
@@ -203,8 +201,9 @@ public class ManangementConfirmationWindowLayout extends AbstractConfirmationWin
final ActionType actionType = ((ActionTypeOptionGroupLayout.ActionTypeOption) actionTypeOptionGroupLayout final ActionType actionType = ((ActionTypeOptionGroupLayout.ActionTypeOption) actionTypeOptionGroupLayout
.getActionTypeOptionGroup().getValue()).getActionType(); .getActionTypeOptionGroup().getValue()).getActionType();
final long forcedTimeStamp = (((ActionTypeOptionGroupLayout.ActionTypeOption) actionTypeOptionGroupLayout final long forcedTimeStamp = (((ActionTypeOptionGroupLayout.ActionTypeOption) actionTypeOptionGroupLayout
.getActionTypeOptionGroup().getValue()) == ActionTypeOption.AUTO_FORCED) ? actionTypeOptionGroupLayout .getActionTypeOptionGroup().getValue()) == ActionTypeOption.AUTO_FORCED)
.getForcedTimeDateField().getValue().getTime() : Action.NO_FORCE_TIME; ? actionTypeOptionGroupLayout.getForcedTimeDateField().getValue().getTime()
: Action.NO_FORCE_TIME;
final Map<Long, ArrayList<TargetIdName>> saveAssignedList = new HashMap<Long, ArrayList<TargetIdName>>(); final Map<Long, ArrayList<TargetIdName>> saveAssignedList = new HashMap<Long, ArrayList<TargetIdName>>();
@@ -320,9 +319,8 @@ public class ManangementConfirmationWindowLayout extends AbstractConfirmationWin
saveTblitem.getItemProperty(TARGET_NAME).setValue(entry.getKey().getName()); saveTblitem.getItemProperty(TARGET_NAME).setValue(entry.getKey().getName());
saveTblitem.getItemProperty(DISTRIBUTION_NAME).setValue( saveTblitem.getItemProperty(DISTRIBUTION_NAME).setValue(HawkbitCommonUtil
HawkbitCommonUtil.getDistributionNameAndVersion(entry.getValue().getName(), entry.getValue() .getDistributionNameAndVersion(entry.getValue().getName(), entry.getValue().getVersion()));
.getVersion()));
saveTblitem.getItemProperty(TARGET_ID).setValue(entry.getKey().getControllerId()); saveTblitem.getItemProperty(TARGET_ID).setValue(entry.getKey().getControllerId());
saveTblitem.getItemProperty(DIST_ID).setValue(entry.getValue().getId()); saveTblitem.getItemProperty(DIST_ID).setValue(entry.getValue().getId());
@@ -346,18 +344,16 @@ public class ManangementConfirmationWindowLayout extends AbstractConfirmationWin
tab.getTable().setContainerDataSource(getTargetModuleTableContainer()); tab.getTable().setContainerDataSource(getTargetModuleTableContainer());
/* Add the discard action column */ /* Add the discard action column */
tab.getTable().addGeneratedColumn( tab.getTable().addGeneratedColumn(DISCARD_CHANGES, (source, itemId, columnId) -> {
DISCARD_CHANGES, final Button deletestargetIcon = SPUIComponentProvider.getButton("", "", SPUILabelDefinitions.DISCARD,
(source, itemId, columnId) -> { ValoTheme.BUTTON_TINY + " " + SPUIStyleDefinitions.REDICON, true, FontAwesome.REPLY,
final Button deletestargetIcon = SPUIComponentProvider.getButton("", "", SPUIButtonStyleSmallNoBorder.class);
SPUILabelDefinitions.DISCARD, ValoTheme.BUTTON_TINY + " " + SPUIStyleDefinitions.REDICON, deletestargetIcon.setData(itemId);
true, FontAwesome.REPLY, SPUIButtonStyleSmallNoBorder.class); deletestargetIcon.setImmediate(true);
deletestargetIcon.setData(itemId); deletestargetIcon.addClickListener(event -> discardTargetDelete(
deletestargetIcon.setImmediate(true); (TargetIdName) ((Button) event.getComponent()).getData(), itemId, tab));
deletestargetIcon.addClickListener(event -> discardTargetDelete( return deletestargetIcon;
(TargetIdName) ((Button) event.getComponent()).getData(), itemId, tab)); });
return deletestargetIcon;
});
/* set the visible columns */ /* set the visible columns */
final List<Object> visibleColumnIds = new ArrayList<>(); final List<Object> visibleColumnIds = new ArrayList<>();
@@ -393,18 +389,16 @@ public class ManangementConfirmationWindowLayout extends AbstractConfirmationWin
tab.getTable().setContainerDataSource(getDSModuleTableContainer()); tab.getTable().setContainerDataSource(getDSModuleTableContainer());
/* Add the discard action column */ /* Add the discard action column */
tab.getTable().addGeneratedColumn( tab.getTable().addGeneratedColumn(DISCARD_CHANGES, (source, itemId, columnId) -> {
DISCARD_CHANGES, final Button deletesDsIcon = SPUIComponentProvider.getButton("", "", SPUILabelDefinitions.DISCARD,
(source, itemId, columnId) -> { ValoTheme.BUTTON_TINY + " " + SPUIStyleDefinitions.REDICON, true, FontAwesome.REPLY,
final Button deletesDsIcon = SPUIComponentProvider.getButton("", "", SPUILabelDefinitions.DISCARD, SPUIButtonStyleSmallNoBorder.class);
ValoTheme.BUTTON_TINY + " " + SPUIStyleDefinitions.REDICON, true, FontAwesome.REPLY, deletesDsIcon.setData(itemId);
SPUIButtonStyleSmallNoBorder.class); deletesDsIcon.setImmediate(true);
deletesDsIcon.setData(itemId); deletesDsIcon.addClickListener(event -> discardDSDelete(
deletesDsIcon.setImmediate(true); (DistributionSetIdName) ((Button) event.getComponent()).getData(), itemId, tab));
deletesDsIcon.addClickListener(event -> discardDSDelete( return deletesDsIcon;
(DistributionSetIdName) ((Button) event.getComponent()).getData(), itemId, tab)); });
return deletesDsIcon;
});
/* set the visible columns */ /* set the visible columns */
final List<Object> visibleColumnIds = new ArrayList<>(); final List<Object> visibleColumnIds = new ArrayList<>();

View File

@@ -288,15 +288,16 @@ public abstract class CreateUpdateTagLayout extends CustomComponent implements C
if (null != selectedOption && selectedOption.equalsIgnoreCase(updateTagNw)) { if (null != selectedOption && selectedOption.equalsIgnoreCase(updateTagNw)) {
if (null != tagNameComboBox.getValue()) { if (null != tagNameComboBox.getValue()) {
final TargetTag targetTagSelected = tagManagement.findTargetTag(tagNameComboBox.getValue() final TargetTag targetTagSelected = tagManagement
.toString()); .findTargetTag(tagNameComboBox.getValue().toString());
if (null != targetTagSelected) { if (null != targetTagSelected) {
selectedColor = targetTagSelected.getColour() != null ? rgbToColorConverter(targetTagSelected selectedColor = targetTagSelected.getColour() != null
.getColour()) : rgbToColorConverter(DEFAULT_COLOR); ? rgbToColorConverter(targetTagSelected.getColour())
: rgbToColorConverter(DEFAULT_COLOR);
} else { } else {
final DistributionSetTag distTag = tagManagement.findDistributionSetTag(tagNameComboBox final DistributionSetTag distTag = tagManagement
.getValue().toString()); .findDistributionSetTag(tagNameComboBox.getValue().toString());
selectedColor = distTag.getColour() != null ? rgbToColorConverter(distTag.getColour()) selectedColor = distTag.getColour() != null ? rgbToColorConverter(distTag.getColour())
: rgbToColorConverter(DEFAULT_COLOR); : rgbToColorConverter(DEFAULT_COLOR);
} }
@@ -470,9 +471,8 @@ public abstract class CreateUpdateTagLayout extends CustomComponent implements C
final double greenColorValue = color.getGreen(); final double greenColorValue = color.getGreen();
greenSlider.setValue(new Double(greenColorValue)); greenSlider.setValue(new Double(greenColorValue));
} catch (final ValueOutOfBoundsException e) { } catch (final ValueOutOfBoundsException e) {
LOG.error( LOG.error("Unable to set RGB color value to " + color.getRed() + "," + color.getGreen() + ","
"Unable to set RGB color value to " + color.getRed() + "," + color.getGreen() + "," + color.getBlue(), e);
+ color.getBlue(), e);
} }
} }

View File

@@ -23,9 +23,9 @@ import com.vaadin.ui.components.colorpicker.ColorPickerPreview;
* *
* *
* *
* Tag ColorPicker Preview field CssLayout cannot be removed because of * Tag ColorPicker Preview field CssLayout cannot be removed because of the deep
* the deep inheritance issue, since protected method fireEvent() of the * inheritance issue, since protected method fireEvent() of the superclass of
* superclass of CssLayout is used in textChange() overridden method * CssLayout is used in textChange() overridden method
* *
* *
*/ */

View File

@@ -66,8 +66,8 @@ import com.vaadin.ui.Upload.SucceededListener;
* *
* *
*/ */
public class BulkUploadHandler extends CustomComponent implements SucceededListener, FailedListener, Receiver, public class BulkUploadHandler extends CustomComponent
StartedListener { implements SucceededListener, FailedListener, Receiver, StartedListener {
/** /**
* * * *
@@ -215,8 +215,8 @@ public class BulkUploadHandler extends CustomComponent implements SucceededListe
try { try {
LOG.info("Bulk file upload started"); LOG.info("Bulk file upload started");
final double totalFileSize = getTotalNumberOfLines(); final double totalFileSize = getTotalNumberOfLines();
reader = new BufferedReader(new InputStreamReader(new FileInputStream(tempFile), reader = new BufferedReader(
Charset.defaultCharset())); new InputStreamReader(new FileInputStream(tempFile), Charset.defaultCharset()));
/** /**
* Once control is in upload succeeded method automatically * Once control is in upload succeeded method automatically
* upload button is re-enabled. To disable the button firing * upload button is re-enabled. To disable the button firing
@@ -431,8 +431,9 @@ public class BulkUploadHandler extends CustomComponent implements SucceededListe
if (tagManagement.findTargetTagById(tagData.getId()) == null) { if (tagManagement.findTargetTagById(tagData.getId()) == null) {
deletedTags.add(tagData.getName()); deletedTags.add(tagData.getName());
} else { } else {
targetManagement.toggleTagAssignment(managementUIState.getTargetTableFilters().getBulkUpload() targetManagement.toggleTagAssignment(
.getTargetsCreated(), tagData.getName()); managementUIState.getTargetTableFilters().getBulkUpload().getTargetsCreated(),
tagData.getName());
} }
} }
if (!deletedTags.isEmpty()) { if (!deletedTags.isEmpty()) {

View File

@@ -151,8 +151,8 @@ public class TargetBeanQuery extends AbstractBeanQuery<ProxyTarget> {
prxyTarget.setUpdateStatus(targ.getTargetInfo().getUpdateStatus()); prxyTarget.setUpdateStatus(targ.getTargetInfo().getUpdateStatus());
prxyTarget.setLastTargetQuery(targ.getTargetInfo().getLastTargetQuery()); prxyTarget.setLastTargetQuery(targ.getTargetInfo().getLastTargetQuery());
prxyTarget.setTargetInfo(targ.getTargetInfo()); prxyTarget.setTargetInfo(targ.getTargetInfo());
prxyTarget.setPollStatusToolTip(HawkbitCommonUtil.getPollStatusToolTip(prxyTarget.getTargetInfo() prxyTarget.setPollStatusToolTip(
.getPollStatus(), getI18N())); HawkbitCommonUtil.getPollStatusToolTip(prxyTarget.getTargetInfo().getPollStatus(), getI18N()));
proxyTargetBeans.add(prxyTarget); proxyTargetBeans.add(prxyTarget);
} }
return proxyTargetBeans; return proxyTargetBeans;

View File

@@ -242,8 +242,8 @@ public class TargetBulkUpdateWindowLayout extends CustomComponent {
final Map<String, Object> queryConfiguration = new HashMap<>(); final Map<String, Object> queryConfiguration = new HashMap<>();
final List<String> list = new ArrayList<>(); final List<String> list = new ArrayList<>();
queryConfiguration.put(SPUIDefinitions.FILTER_BY_NO_TAG, managementUIState.getDistributionTableFilters() queryConfiguration.put(SPUIDefinitions.FILTER_BY_NO_TAG,
.isNoTagSelected()); managementUIState.getDistributionTableFilters().isNoTagSelected());
if (!managementUIState.getDistributionTableFilters().getDistSetTags().isEmpty()) { if (!managementUIState.getDistributionTableFilters().getDistSetTags().isEmpty()) {
list.addAll(managementUIState.getDistributionTableFilters().getDistSetTags()); list.addAll(managementUIState.getDistributionTableFilters().getDistSetTags());
@@ -253,8 +253,9 @@ public class TargetBulkUpdateWindowLayout extends CustomComponent {
final BeanQueryFactory<DistributionBeanQuery> distributionQF = new BeanQueryFactory<>( final BeanQueryFactory<DistributionBeanQuery> distributionQF = new BeanQueryFactory<>(
DistributionBeanQuery.class); DistributionBeanQuery.class);
distributionQF.setQueryConfiguration(queryConfiguration); distributionQF.setQueryConfiguration(queryConfiguration);
final LazyQueryContainer distributionContainer = new LazyQueryContainer(new LazyQueryDefinition(true, final LazyQueryContainer distributionContainer = new LazyQueryContainer(
SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME), distributionQF); new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME),
distributionQF);
return distributionContainer; return distributionContainer;

View File

@@ -215,13 +215,12 @@ public class TargetTable extends AbstractTable implements Handler {
@EventBusListenerMethod(scope = EventScope.SESSION) @EventBusListenerMethod(scope = EventScope.SESSION)
void onEvent(final ManagementUIEvent managementUIEvent) { void onEvent(final ManagementUIEvent managementUIEvent) {
UI.getCurrent().access( UI.getCurrent().access(() -> {
() -> { if (managementUIEvent == ManagementUIEvent.UNASSIGN_TARGET_TAG
if (managementUIEvent == ManagementUIEvent.UNASSIGN_TARGET_TAG || managementUIEvent == ManagementUIEvent.ASSIGN_TARGET_TAG) {
|| managementUIEvent == ManagementUIEvent.ASSIGN_TARGET_TAG) { refreshFilter();
refreshFilter(); }
} });
});
} }
@EventBusListenerMethod(scope = EventScope.SESSION) @EventBusListenerMethod(scope = EventScope.SESSION)
@@ -276,8 +275,9 @@ public class TargetTable extends AbstractTable implements Handler {
targetQF.setQueryConfiguration(queryConfig); targetQF.setQueryConfiguration(queryConfig);
// create lazy query container with lazy defination and query // create lazy query container with lazy defination and query
final LazyQueryContainer targetTableContainer = new LazyQueryContainer(new LazyQueryDefinition(true, final LazyQueryContainer targetTableContainer = new LazyQueryContainer(
SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_CONT_ID_NAME), targetQF); new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_CONT_ID_NAME),
targetQF);
targetTableContainer.getQueryView().getQueryDefinition().setMaxNestedPropertyDepth(PROPERTY_DEPT); targetTableContainer.getQueryView().getQueryDefinition().setMaxNestedPropertyDepth(PROPERTY_DEPT);
return targetTableContainer; return targetTableContainer;
@@ -365,8 +365,8 @@ public class TargetTable extends AbstractTable implements Handler {
final TargetIdName lastSelectedItem = getLastSelectedItem(values); final TargetIdName lastSelectedItem = getLastSelectedItem(values);
managementUIState.setSelectedTargetIdName(values); managementUIState.setSelectedTargetIdName(values);
managementUIState.setLastSelectedTargetIdName(lastSelectedItem); managementUIState.setLastSelectedTargetIdName(lastSelectedItem);
final Target target = targetManagement.findTargetByControllerIDWithDetails(lastSelectedItem final Target target = targetManagement
.getControllerId()); .findTargetByControllerIDWithDetails(lastSelectedItem.getControllerId());
eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.SELECTED_TARGET, target)); eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.SELECTED_TARGET, target));
} else { } else {
managementUIState.setSelectedTargetIdName(null); managementUIState.setSelectedTargetIdName(null);
@@ -400,10 +400,10 @@ public class TargetTable extends AbstractTable implements Handler {
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1f)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1f));
columnList columnList
.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.1f)); .add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.1f));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), columnList.add(
new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), 0.1f));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"),
0.1f)); 0.1f));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE,
i18n.get("header.modifiedDate"), 0.1f));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.2f)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.2f));
} else { } else {
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_NAME, i18n.get("header.name"), 0.8f)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_NAME, i18n.get("header.name"), 0.8f));
@@ -622,7 +622,8 @@ public class TargetTable extends AbstractTable implements Handler {
private void doAssignments(final DragAndDropEvent event) { private void doAssignments(final DragAndDropEvent event) {
if (event.getTransferable().getSourceComponent() instanceof Table) { if (event.getTransferable().getSourceComponent() instanceof Table) {
dsToTargetAssignment(event); dsToTargetAssignment(event);
} else if (event.getTransferable().getSourceComponent() instanceof DragAndDropWrapper && isNoTagAssigned(event)) { } else if (event.getTransferable().getSourceComponent() instanceof DragAndDropWrapper
&& isNoTagAssigned(event)) {
tagAssignment(event); tagAssignment(event);
} }
@@ -632,8 +633,8 @@ public class TargetTable extends AbstractTable implements Handler {
final String tagName = ((DragAndDropWrapper) (event.getTransferable().getSourceComponent())).getData() final String tagName = ((DragAndDropWrapper) (event.getTransferable().getSourceComponent())).getData()
.toString(); .toString();
if (tagName.equals(SPUIDefinitions.TARGET_TAG_BUTTON)) { if (tagName.equals(SPUIDefinitions.TARGET_TAG_BUTTON)) {
notification.displayValidationError(i18n.get("message.tag.cannot.be.assigned", notification.displayValidationError(
new Object[] { i18n.get("label.no.tag.assigned") })); i18n.get("message.tag.cannot.be.assigned", new Object[] { i18n.get("label.no.tag.assigned") }));
return false; return false;
} }
return true; return true;
@@ -684,8 +685,8 @@ public class TargetTable extends AbstractTable implements Handler {
private Boolean validateTable(final Component compsource, final TableTransferable transferable) { private Boolean validateTable(final Component compsource, final TableTransferable transferable) {
final Table source = (Table) compsource; final Table source = (Table) compsource;
if (!(source.getId().equals(SPUIComponetIdProvider.DIST_TABLE_ID) || source.getId().startsWith( if (!(source.getId().equals(SPUIComponetIdProvider.DIST_TABLE_ID)
SPUIDefinitions.TARGET_TAG_ID_PREFIXS))) { || source.getId().startsWith(SPUIDefinitions.TARGET_TAG_ID_PREFIXS))) {
notification.displayValidationError(i18n.get(ACTION_NOT_ALLOWED_MSG)); notification.displayValidationError(i18n.get(ACTION_NOT_ALLOWED_MSG));
return false; return false;
} else if (!permChecker.hasUpdateTargetPermission()) { } else if (!permChecker.hasUpdateTargetPermission()) {
@@ -713,8 +714,8 @@ public class TargetTable extends AbstractTable implements Handler {
private Boolean validateDragAndDropWrapper(final Component compsource) { private Boolean validateDragAndDropWrapper(final Component compsource) {
final DragAndDropWrapper wrapperSource = (DragAndDropWrapper) compsource; final DragAndDropWrapper wrapperSource = (DragAndDropWrapper) compsource;
final String tagName = HawkbitCommonUtil final String tagName = HawkbitCommonUtil.removePrefix(compsource.getId(),
.removePrefix(compsource.getId(), SPUIDefinitions.TARGET_TAG_ID_PREFIXS); SPUIDefinitions.TARGET_TAG_ID_PREFIXS);
if (wrapperSource.getId().startsWith(SPUIDefinitions.TARGET_TAG_ID_PREFIXS)) { if (wrapperSource.getId().startsWith(SPUIDefinitions.TARGET_TAG_ID_PREFIXS)) {
if ("NO TAG".equals(tagName)) { if ("NO TAG".equals(tagName)) {
notification.displayValidationError(i18n.get(ACTION_NOT_ALLOWED_MSG)); notification.displayValidationError(i18n.get(ACTION_NOT_ALLOWED_MSG));
@@ -740,8 +741,9 @@ public class TargetTable extends AbstractTable implements Handler {
if (null != distributionNameId) { if (null != distributionNameId) {
if (managementUIState.getAssignedList().keySet().contains(targetId) if (managementUIState.getAssignedList().keySet().contains(targetId)
&& managementUIState.getAssignedList().get(targetId).equals(distributionNameId)) { && managementUIState.getAssignedList().get(targetId).equals(distributionNameId)) {
message = getPendingActionMessage(message, HawkbitCommonUtil.getDistributionNameAndVersion( message = getPendingActionMessage(message,
distributionNameId.getName(), distributionNameId.getVersion()), HawkbitCommonUtil.getDistributionNameAndVersion(distributionNameId.getName(),
distributionNameId.getVersion()),
targetId.getControllerId()); targetId.getControllerId());
} else { } else {
managementUIState.getAssignedList().put(targetId, distributionNameId); managementUIState.getAssignedList().put(targetId, distributionNameId);
@@ -807,13 +809,13 @@ public class TargetTable extends AbstractTable implements Handler {
* registered for the target last query column. That listener will * registered for the target last query column. That listener will
* update the latest query date for this target in the tooltip. * update the latest query date for this target in the tooltip.
*/ */
item.getItemProperty(SPUILabelDefinitions.LAST_QUERY_DATE).setValue( item.getItemProperty(SPUILabelDefinitions.LAST_QUERY_DATE)
updatedTarget.getTargetInfo().getLastTargetQuery()); .setValue(updatedTarget.getTargetInfo().getLastTargetQuery());
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY)
HawkbitCommonUtil.getIMUser(updatedTarget.getLastModifiedBy())); .setValue(HawkbitCommonUtil.getIMUser(updatedTarget.getLastModifiedBy()));
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE)
SPDateTimeUtil.getFormattedDate(updatedTarget.getLastModifiedAt())); .setValue(SPDateTimeUtil.getFormattedDate(updatedTarget.getLastModifiedAt()));
item.getItemProperty(SPUILabelDefinitions.VAR_DESC).setValue(updatedTarget.getDescription()); item.getItemProperty(SPUILabelDefinitions.VAR_DESC).setValue(updatedTarget.getDescription());
/* /*
@@ -821,8 +823,8 @@ public class TargetTable extends AbstractTable implements Handler {
* registered for the target update status. That listener will * registered for the target update status. That listener will
* update the new status icon showing for this target in the table. * update the new status icon showing for this target in the table.
*/ */
item.getItemProperty(SPUILabelDefinitions.VAR_TARGET_STATUS).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_TARGET_STATUS)
updatedTarget.getTargetInfo().getUpdateStatus()); .setValue(updatedTarget.getTargetInfo().getUpdateStatus());
} }
} }
@@ -852,9 +854,8 @@ public class TargetTable extends AbstractTable implements Handler {
} }
private String getTargetTableStyle(final Long assignedDistributionSetId, final Long installedDistributionSetId) { private String getTargetTableStyle(final Long assignedDistributionSetId, final Long installedDistributionSetId) {
final Long distPinned = managementUIState.getTargetTableFilters().getPinnedDistId().isPresent() ? managementUIState final Long distPinned = managementUIState.getTargetTableFilters().getPinnedDistId().isPresent()
.getTargetTableFilters().getPinnedDistId().get() ? managementUIState.getTargetTableFilters().getPinnedDistId().get() : null;
: null;
if (null != distPinned && distPinned.equals(installedDistributionSetId)) { if (null != distPinned && distPinned.equals(installedDistributionSetId)) {
return SPUIDefinitions.HIGHTLIGHT_GREEN; return SPUIDefinitions.HIGHTLIGHT_GREEN;
@@ -873,10 +874,10 @@ public class TargetTable extends AbstractTable implements Handler {
private String createTargetTableStyle(final Object itemId, final Object propertyId) { private String createTargetTableStyle(final Object itemId, final Object propertyId) {
if (null == propertyId) { if (null == propertyId) {
final Item item = getItem(itemId); final Item item = getItem(itemId);
final Long assignedDistributionSetId = (Long) item.getItemProperty( final Long assignedDistributionSetId = (Long) item
SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_ID).getValue(); .getItemProperty(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_ID).getValue();
final Long installedDistributionSetId = (Long) item.getItemProperty( final Long installedDistributionSetId = (Long) item
SPUILabelDefinitions.INSTALLED_DISTRIBUTION_ID).getValue(); .getItemProperty(SPUILabelDefinitions.INSTALLED_DISTRIBUTION_ID).getValue();
return getTargetTableStyle(assignedDistributionSetId, installedDistributionSetId); return getTargetTableStyle(assignedDistributionSetId, installedDistributionSetId);
} }
return null; return null;
@@ -935,8 +936,8 @@ public class TargetTable extends AbstractTable implements Handler {
final Item item = targetContainer.getItem(targetIdName); final Item item = targetContainer.getItem(targetIdName);
item.getItemProperty(SPUILabelDefinitions.VAR_TARGET_STATUS).setValue(targetInfo.getUpdateStatus()); item.getItemProperty(SPUILabelDefinitions.VAR_TARGET_STATUS).setValue(targetInfo.getUpdateStatus());
item.getItemProperty(SPUILabelDefinitions.VAR_NAME).setValue(target.getName()); item.getItemProperty(SPUILabelDefinitions.VAR_NAME).setValue(target.getName());
item.getItemProperty(SPUILabelDefinitions.VAR_POLL_STATUS_TOOL_TIP).setValue( item.getItemProperty(SPUILabelDefinitions.VAR_POLL_STATUS_TOOL_TIP)
HawkbitCommonUtil.getPollStatusToolTip(targetInfo.getPollStatus(), i18n)); .setValue(HawkbitCommonUtil.getPollStatusToolTip(targetInfo.getPollStatus(), i18n));
} }
private boolean isLastSelectedTarget(final TargetIdName targetIdName) { private boolean isLastSelectedTarget(final TargetIdName targetIdName) {
@@ -994,8 +995,8 @@ public class TargetTable extends AbstractTable implements Handler {
filters.add(new TargetSearchTextFilter(target, targetTableFilters.getSearchText().get())); filters.add(new TargetSearchTextFilter(target, targetTableFilters.getSearchText().get()));
} }
filters.add(new TargetStatusFilter(targetTableFilters.getClickedStatusTargetTags())); filters.add(new TargetStatusFilter(targetTableFilters.getClickedStatusTargetTags()));
filters.add(new TargetTagFilter(target, targetTableFilters.getClickedTargetTags(), targetTableFilters filters.add(new TargetTagFilter(target, targetTableFilters.getClickedTargetTags(),
.isNoTagSelected())); targetTableFilters.isNoTagSelected()));
filters.add(new CustomTargetFilter(targetTableFilters.getTargetFilterQuery())); filters.add(new CustomTargetFilter(targetTableFilters.getTargetFilterQuery()));
return filters; return filters;
} }
@@ -1004,8 +1005,8 @@ public class TargetTable extends AbstractTable implements Handler {
* Select all rows in the table. * Select all rows in the table.
*/ */
public void selectAll() { public void selectAll() {
final PageRequest pageRequest = new OffsetBasedPageRequest(0, size(), new Sort( final PageRequest pageRequest = new OffsetBasedPageRequest(0, size(),
SPUIDefinitions.TARGET_TABLE_CREATE_AT_SORT_ORDER, "createdAt")); new Sort(SPUIDefinitions.TARGET_TABLE_CREATE_AT_SORT_ORDER, "createdAt"));
List<TargetIdName> targetIdList; List<TargetIdName> targetIdList;
// is custom filter selected // is custom filter selected
if (managementUIState.getTargetTableFilters().getTargetFilterQuery().isPresent()) { if (managementUIState.getTargetTableFilters().getTargetFilterQuery().isPresent()) {
@@ -1017,9 +1018,8 @@ public class TargetTable extends AbstractTable implements Handler {
} }
private List<TargetIdName> getTargetIdsBySimpleFilters(final PageRequest pageRequest) { private List<TargetIdName> getTargetIdsBySimpleFilters(final PageRequest pageRequest) {
final Long filterByDistId = managementUIState.getTargetTableFilters().getDistributionSet().isPresent() ? managementUIState final Long filterByDistId = managementUIState.getTargetTableFilters().getDistributionSet().isPresent()
.getTargetTableFilters().getDistributionSet().get().getId() ? managementUIState.getTargetTableFilters().getDistributionSet().get().getId() : null;
: null;
final List<TargetUpdateStatus> statusList = new ArrayList<TargetUpdateStatus>(); final List<TargetUpdateStatus> statusList = new ArrayList<TargetUpdateStatus>();
if (isFilteredByStatus()) { if (isFilteredByStatus()) {
statusList.addAll(managementUIState.getTargetTableFilters().getClickedStatusTargetTags()); statusList.addAll(managementUIState.getTargetTableFilters().getClickedStatusTargetTags());
@@ -1028,8 +1028,8 @@ public class TargetTable extends AbstractTable implements Handler {
if (isFilteredByTags()) { if (isFilteredByTags()) {
tagList.addAll(managementUIState.getTargetTableFilters().getClickedTargetTags()); tagList.addAll(managementUIState.getTargetTableFilters().getClickedTargetTags());
} }
String searchText = managementUIState.getTargetTableFilters().getSearchText().isPresent() ? managementUIState String searchText = managementUIState.getTargetTableFilters().getSearchText().isPresent()
.getTargetTableFilters().getSearchText().get() : null; ? managementUIState.getTargetTableFilters().getSearchText().get() : null;
if (!Strings.isNullOrEmpty(searchText)) { if (!Strings.isNullOrEmpty(searchText)) {
searchText = String.format("%%%s%%", searchText); searchText = String.format("%%%s%%", searchText);
} }
@@ -1114,8 +1114,8 @@ public class TargetTable extends AbstractTable implements Handler {
final Long pinnedDistId) { final Long pinnedDistId) {
final long size; final long size;
if (managementUIState.getTargetTableFilters().getTargetFilterQuery().isPresent()) { if (managementUIState.getTargetTableFilters().getTargetFilterQuery().isPresent()) {
size = targetManagement.countTargetByTargetFilterQuery(managementUIState.getTargetTableFilters() size = targetManagement.countTargetByTargetFilterQuery(
.getTargetFilterQuery().get()); managementUIState.getTargetTableFilters().getTargetFilterQuery().get());
} else if (!anyFilterSelected(status, pinnedDistId, noTagClicked, targetTags, searchText)) { } else if (!anyFilterSelected(status, pinnedDistId, noTagClicked, targetTags, searchText)) {
size = totalTargetsCount; size = totalTargetsCount;
} else { } else {

View File

@@ -141,9 +141,8 @@ public class TargetTableHeader extends AbstractTableHeader {
@EventBusListenerMethod(scope = EventScope.SESSION) @EventBusListenerMethod(scope = EventScope.SESSION)
void onEvent(final TargetTableEvent event) { void onEvent(final TargetTableEvent event) {
if (TargetComponentEvent.BULK_TARGET_CREATED == event.getTargetComponentEvent()) { if (TargetComponentEvent.BULK_TARGET_CREATED == event.getTargetComponentEvent()) {
this.getUI().access( this.getUI().access(() -> targetBulkUpdateWindow.setProgressBarValue(
() -> targetBulkUpdateWindow.setProgressBarValue(managementUIState.getTargetTableFilters() managementUIState.getTargetTableFilters().getBulkUpload().getProgressBarCurrentValue()));
.getBulkUpload().getProgressBarCurrentValue()));
} else if (TargetComponentEvent.BULK_UPLOAD_COMPLETED == event.getTargetComponentEvent()) { } else if (TargetComponentEvent.BULK_UPLOAD_COMPLETED == event.getTargetComponentEvent()) {
this.getUI().access(() -> targetBulkUpdateWindow.onUploadCompletion()); this.getUI().access(() -> targetBulkUpdateWindow.onUploadCompletion());
} else if (TargetComponentEvent.BULK_TARGET_UPLOAD_STARTED == event.getTargetComponentEvent()) { } else if (TargetComponentEvent.BULK_TARGET_UPLOAD_STARTED == event.getTargetComponentEvent()) {
@@ -264,8 +263,8 @@ public class TargetTableHeader extends AbstractTableHeader {
} }
private String getSearchText() { private String getSearchText() {
return managementUIState.getTargetTableFilters().getSearchText().isPresent() ? managementUIState return managementUIState.getTargetTableFilters().getSearchText().isPresent()
.getTargetTableFilters().getSearchText().get() : null; ? managementUIState.getTargetTableFilters().getSearchText().get() : null;
} }
@Override @Override
@@ -395,8 +394,8 @@ public class TargetTableHeader extends AbstractTableHeader {
private Set<DistributionSetIdName> getDropppedDistributionDetails(final TableTransferable transferable) { private Set<DistributionSetIdName> getDropppedDistributionDetails(final TableTransferable transferable) {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
final Set<DistributionSetIdName> distSelected = HawkbitCommonUtil.getSelectedDSDetails(transferable final Set<DistributionSetIdName> distSelected = HawkbitCommonUtil
.getSourceComponent()); .getSelectedDSDetails(transferable.getSourceComponent());
final Set<DistributionSetIdName> distributionIdSet = new HashSet<DistributionSetIdName>(); final Set<DistributionSetIdName> distributionIdSet = new HashSet<DistributionSetIdName>();
if (!distSelected.contains(transferable.getData("itemId"))) { if (!distSelected.contains(transferable.getData("itemId"))) {
distributionIdSet.add((DistributionSetIdName) transferable.getData("itemId")); distributionIdSet.add((DistributionSetIdName) transferable.getData("itemId"));

View File

@@ -155,8 +155,8 @@ public class CreateUpdateTargetTagLayout extends CreateUpdateTagLayout {
private Boolean checkIsDuplicate(final TargetTag existingTag) { private Boolean checkIsDuplicate(final TargetTag existingTag) {
if (existingTag != null) { if (existingTag != null) {
uiNotification.displayValidationError(i18n.get("message.tag.duplicate.check", uiNotification.displayValidationError(
new Object[] { existingTag.getName() })); i18n.get("message.tag.duplicate.check", new Object[] { existingTag.getName() }));
return Boolean.TRUE; return Boolean.TRUE;
} }
return Boolean.FALSE; return Boolean.FALSE;

View File

@@ -100,7 +100,8 @@ public class TargetFilterQueryButtons extends Table {
} }
protected LazyQueryContainer createButtonsLazyQueryContainer() { protected LazyQueryContainer createButtonsLazyQueryContainer() {
final BeanQueryFactory<TargetFilterBeanQuery> queryFactory = new BeanQueryFactory<>(TargetFilterBeanQuery.class); final BeanQueryFactory<TargetFilterBeanQuery> queryFactory = new BeanQueryFactory<>(
TargetFilterBeanQuery.class);
final Map<String, Object> queryConfig = new HashMap<>(); final Map<String, Object> queryConfig = new HashMap<>();
queryFactory.setQueryConfiguration(queryConfig); queryFactory.setQueryConfiguration(queryConfig);
return new LazyQueryContainer(new LazyQueryDefinition(true, 20, "id"), queryFactory); return new LazyQueryContainer(new LazyQueryDefinition(true, 20, "id"), queryFactory);
@@ -145,8 +146,8 @@ public class TargetFilterQueryButtons extends Table {
} }
private Button createFilterButton(final Long id, final String name, final Object itemId) { private Button createFilterButton(final Long id, final String name, final Object itemId) {
final Button button = SPUIComponentProvider final Button button = SPUIComponentProvider.getButton("", name, name, "", false, null,
.getButton("", name, name, "", false, null, SPUITagButtonStyle.class); SPUITagButtonStyle.class);
button.addStyleName("custom-filter-button"); button.addStyleName("custom-filter-button");
button.setId(name); button.setId(name);
if (id != null) { if (id != null) {

View File

@@ -55,8 +55,8 @@ public class TargetTagFilterButtonClick extends AbstractFilterMultiButtonClick i
eventBus.publish(this, TargetFilterEvent.FILTER_BY_TAG); eventBus.publish(this, TargetFilterEvent.FILTER_BY_TAG);
} }
} else { } else {
if (null != managementUIState.getTargetTableFilters().getClickedTargetTags() if (null != managementUIState.getTargetTableFilters().getClickedTargetTags() && managementUIState
&& managementUIState.getTargetTableFilters().getClickedTargetTags().contains(clickedButton.getId())) { .getTargetTableFilters().getClickedTargetTags().contains(clickedButton.getId())) {
managementUIState.getTargetTableFilters().getClickedTargetTags().remove(clickedButton.getId()); managementUIState.getTargetTableFilters().getClickedTargetTags().remove(clickedButton.getId());
eventBus.publish(this, TargetFilterEvent.FILTER_BY_TAG); eventBus.publish(this, TargetFilterEvent.FILTER_BY_TAG);
} }

View File

@@ -166,9 +166,8 @@ public class TargetTagFilterButtons extends AbstractFilterButtons {
@Override @Override
protected boolean isClickedByDefault(final Long buttonId) { protected boolean isClickedByDefault(final Long buttonId) {
final TargetTag newTagClickedObj = tagMgmtService.findTargetTagById(buttonId); final TargetTag newTagClickedObj = tagMgmtService.findTargetTagById(buttonId);
return managementUIState.getTargetTableFilters().getClickedTargetTags() != null return managementUIState.getTargetTableFilters().getClickedTargetTags() != null && managementUIState
&& managementUIState.getTargetTableFilters().getClickedTargetTags() .getTargetTableFilters().getClickedTargetTags().contains(newTagClickedObj.getName());
.contains(newTagClickedObj.getName());
} }
@Override @Override
@@ -223,8 +222,8 @@ public class TargetTagFilterButtons extends AbstractFilterButtons {
private Boolean isNoTagAssigned(final DragAndDropEvent event) { private Boolean isNoTagAssigned(final DragAndDropEvent event) {
final String tagName = ((DragAndDropWrapper) (event.getTargetDetails().getTarget())).getData().toString(); final String tagName = ((DragAndDropWrapper) (event.getTargetDetails().getTarget())).getData().toString();
if (tagName.equals(SPUIDefinitions.TARGET_TAG_BUTTON)) { if (tagName.equals(SPUIDefinitions.TARGET_TAG_BUTTON)) {
notification.displayValidationError(i18n.get("message.tag.cannot.be.assigned", notification.displayValidationError(
new Object[] { i18n.get("label.no.tag.assigned") })); i18n.get("message.tag.cannot.be.assigned", new Object[] { i18n.get("label.no.tag.assigned") }));
return false; return false;
} }
return true; return true;

View File

@@ -206,15 +206,15 @@ public final class DashboardMenu extends CustomComponent implements EnvironmentA
&& (((UserPrincipal) user).getFirstname() != null || ((UserPrincipal) user).getLastname() != null)) { && (((UserPrincipal) user).getFirstname() != null || ((UserPrincipal) user).getLastname() != null)) {
settingsItem.setText(trimTanent(((UserPrincipal) user).getTenant()) + "\n" settingsItem.setText(trimTanent(((UserPrincipal) user).getTenant()) + "\n"
+ concateFNameLName(((UserPrincipal) user).getFirstname(), ((UserPrincipal) user).getLastname())); + concateFNameLName(((UserPrincipal) user).getFirstname(), ((UserPrincipal) user).getLastname()));
settingsItem.setDescription(((UserPrincipal) user).getFirstname() + " / " settingsItem.setDescription(
+ ((UserPrincipal) user).getLastname()); ((UserPrincipal) user).getFirstname() + " / " + ((UserPrincipal) user).getLastname());
} else if (user instanceof UserPrincipal) { } else if (user instanceof UserPrincipal) {
if (((UserPrincipal) user).getLoginname().length() > 10) { if (((UserPrincipal) user).getLoginname().length() > 10) {
settingsItem.setText(trimTanent(((UserPrincipal) user).getTenant()) + "\n" settingsItem.setText(trimTanent(((UserPrincipal) user).getTenant()) + "\n"
+ ((UserPrincipal) user).getLoginname().substring(0, 10) + ".."); + ((UserPrincipal) user).getLoginname().substring(0, 10) + "..");
} else { } else {
settingsItem.setText(trimTanent(((UserPrincipal) user).getTenant()) + "\n" settingsItem.setText(
+ ((UserPrincipal) user).getLoginname()); trimTanent(((UserPrincipal) user).getTenant()) + "\n" + ((UserPrincipal) user).getLoginname());
} }
settingsItem.setDescription(((UserPrincipal) user).getLoginname()); settingsItem.setDescription(((UserPrincipal) user).getLoginname());
} else if (user != null) { } else if (user != null) {

View File

@@ -26,8 +26,8 @@ import org.eclipse.hawkbit.repository.model.DistributionSetTagAssigmentResult;
import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModule;
import org.eclipse.hawkbit.repository.model.SoftwareModuleType; import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
import org.eclipse.hawkbit.repository.model.TargetIdName; import org.eclipse.hawkbit.repository.model.TargetIdName;
import org.eclipse.hawkbit.repository.model.TargetTagAssigmentResult;
import org.eclipse.hawkbit.repository.model.TargetInfo.PollStatus; import org.eclipse.hawkbit.repository.model.TargetInfo.PollStatus;
import org.eclipse.hawkbit.repository.model.TargetTagAssigmentResult;
import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; import org.eclipse.hawkbit.repository.model.TargetUpdateStatus;
import org.eclipse.hawkbit.ui.management.dstable.DistributionTable; import org.eclipse.hawkbit.ui.management.dstable.DistributionTable;
import org.eclipse.hawkbit.ui.management.targettable.TargetTable; import org.eclipse.hawkbit.ui.management.targettable.TargetTable;
@@ -432,12 +432,10 @@ public final class HawkbitCommonUtil {
public static String getPollStatusToolTip(final PollStatus pollStatus, final I18N i18N) { public static String getPollStatusToolTip(final PollStatus pollStatus, final I18N i18N) {
if (pollStatus != null && pollStatus.getLastPollDate() != null && pollStatus.isOverdue()) { if (pollStatus != null && pollStatus.getLastPollDate() != null && pollStatus.isOverdue()) {
final TimeZone tz = SPDateTimeUtil.getBrowserTimeZone(); final TimeZone tz = SPDateTimeUtil.getBrowserTimeZone();
return "Overdue for " return "Overdue for " + SPDateTimeUtil.getDurationFormattedString(
+ SPDateTimeUtil.getDurationFormattedString( pollStatus.getOverdueDate().atZone(SPDateTimeUtil.getTimeZoneId(tz)).toInstant().toEpochMilli(),
pollStatus.getOverdueDate().atZone(SPDateTimeUtil.getTimeZoneId(tz)).toInstant() pollStatus.getCurrentDate().atZone(SPDateTimeUtil.getTimeZoneId(tz)).toInstant().toEpochMilli(),
.toEpochMilli(), i18N);
pollStatus.getCurrentDate().atZone(SPDateTimeUtil.getTimeZoneId(tz)).toInstant()
.toEpochMilli(), i18N);
} }
return null; return null;
} }
@@ -479,8 +477,8 @@ public final class HawkbitCommonUtil {
* @return extra height required to increase. * @return extra height required to increase.
*/ */
public static float findRequiredExtraHeight(final float newBrowserHeight) { public static float findRequiredExtraHeight(final float newBrowserHeight) {
return newBrowserHeight > SPUIDefinitions.REQ_MIN_BROWSER_HEIGHT ? newBrowserHeight return newBrowserHeight > SPUIDefinitions.REQ_MIN_BROWSER_HEIGHT
- SPUIDefinitions.REQ_MIN_BROWSER_HEIGHT : 0; ? newBrowserHeight - SPUIDefinitions.REQ_MIN_BROWSER_HEIGHT : 0;
} }
/** /**
@@ -491,8 +489,8 @@ public final class HawkbitCommonUtil {
* @return float heigth of software module table * @return float heigth of software module table
*/ */
public static float findRequiredSwModuleExtraHeight(final float newBrowserHeight) { public static float findRequiredSwModuleExtraHeight(final float newBrowserHeight) {
return newBrowserHeight > SPUIDefinitions.REQ_MIN_UPLOAD_BROWSER_HEIGHT ? newBrowserHeight return newBrowserHeight > SPUIDefinitions.REQ_MIN_UPLOAD_BROWSER_HEIGHT
- SPUIDefinitions.REQ_MIN_UPLOAD_BROWSER_HEIGHT : 0; ? newBrowserHeight - SPUIDefinitions.REQ_MIN_UPLOAD_BROWSER_HEIGHT : 0;
} }
/** /**
@@ -503,8 +501,8 @@ public final class HawkbitCommonUtil {
* @return float width of software module table * @return float width of software module table
*/ */
public static float findRequiredSwModuleExtraWidth(final float newBrowserWidth) { public static float findRequiredSwModuleExtraWidth(final float newBrowserWidth) {
return newBrowserWidth > SPUIDefinitions.REQ_MIN_UPLOAD_BROWSER_WIDTH ? newBrowserWidth return newBrowserWidth > SPUIDefinitions.REQ_MIN_UPLOAD_BROWSER_WIDTH
- SPUIDefinitions.REQ_MIN_UPLOAD_BROWSER_WIDTH : 0; ? newBrowserWidth - SPUIDefinitions.REQ_MIN_UPLOAD_BROWSER_WIDTH : 0;
} }
/** /**
@@ -566,8 +564,8 @@ public final class HawkbitCommonUtil {
* @return extra width required to be increased. * @return extra width required to be increased.
*/ */
public static float findExtraWidth(final float newBrowserWidth) { public static float findExtraWidth(final float newBrowserWidth) {
return newBrowserWidth > SPUIDefinitions.REQ_MIN_BROWSER_WIDTH ? newBrowserWidth return newBrowserWidth > SPUIDefinitions.REQ_MIN_BROWSER_WIDTH
- SPUIDefinitions.REQ_MIN_BROWSER_WIDTH : 0; ? newBrowserWidth - SPUIDefinitions.REQ_MIN_BROWSER_WIDTH : 0;
} }
/** /**
@@ -700,12 +698,12 @@ public final class HawkbitCommonUtil {
final StringBuilder exeJS = new StringBuilder(DRAG_COUNT_ELEMENT).append(JS_DRAG_COUNT_REM_CHILD); final StringBuilder exeJS = new StringBuilder(DRAG_COUNT_ELEMENT).append(JS_DRAG_COUNT_REM_CHILD);
final String currentTheme = UI.getCurrent().getTheme(); final String currentTheme = UI.getCurrent().getTheme();
if (count > 1) { if (count > 1) {
exeJS.append(COUNT_STYLE) exeJS.append(COUNT_STYLE).append(COUNT_STYLE_ID)
.append(COUNT_STYLE_ID)
.append(" countStyle.innerHTML = '." + currentTheme + " tbody.v-drag-element tr:after { content:\"" .append(" countStyle.innerHTML = '." + currentTheme + " tbody.v-drag-element tr:after { content:\""
+ count + "\";top:-15px } ." + currentTheme + " tr.v-drag-element:after { content:\"" + count + "\";top:-15px } ." + currentTheme + " tr.v-drag-element:after { content:\""
+ count + CLOSE_BRACE_NOSEMICOLON + "." + currentTheme + count + CLOSE_BRACE_NOSEMICOLON + "." + currentTheme
+ " table.v-drag-element:after{ content:\"" + count + CLOSE_BRACE).append(APPEND_CHILD); + " table.v-drag-element:after{ content:\"" + count + CLOSE_BRACE)
.append(APPEND_CHILD);
} }
return exeJS.toString(); return exeJS.toString();
} }
@@ -900,9 +898,8 @@ public final class HawkbitCommonUtil {
final int unassignedCount = result.getUnassigned(); final int unassignedCount = result.getUnassigned();
if (assignedCount == 1) { if (assignedCount == 1) {
formMsg.append( formMsg.append(i18n.get("message.target.assigned.one",
i18n.get("message.target.assigned.one", new Object[] { new Object[] { result.getAssignedTargets().get(0).getName(), targTagName })).append("<br>");
result.getAssignedTargets().get(0).getName(), targTagName })).append("<br>");
} else if (assignedCount > 1) { } else if (assignedCount > 1) {
formMsg.append(i18n.get("message.target.assigned.many", new Object[] { assignedCount, targTagName })) formMsg.append(i18n.get("message.target.assigned.many", new Object[] { assignedCount, targTagName }))
@@ -916,9 +913,8 @@ public final class HawkbitCommonUtil {
} }
if (unassignedCount == 1) { if (unassignedCount == 1) {
formMsg.append( formMsg.append(i18n.get("message.target.unassigned.one",
i18n.get("message.target.unassigned.one", new Object[] { new Object[] { result.getUnassignedTargets().get(0).getName(), targTagName })).append("<br>");
result.getUnassignedTargets().get(0).getName(), targTagName })).append("<br>");
} else if (unassignedCount > 1) { } else if (unassignedCount > 1) {
formMsg.append(i18n.get("message.target.unassigned.many", new Object[] { unassignedCount, targTagName })) formMsg.append(i18n.get("message.target.unassigned.many", new Object[] { unassignedCount, targTagName }))
@@ -948,9 +944,8 @@ public final class HawkbitCommonUtil {
final int unassignedCount = result.getUnassigned(); final int unassignedCount = result.getUnassigned();
if (assignedCount == 1) { if (assignedCount == 1) {
formMsg.append( formMsg.append(i18n.get("message.target.assigned.one",
i18n.get("message.target.assigned.one", new Object[] { result.getAssignedDs().get(0).getName(), new Object[] { result.getAssignedDs().get(0).getName(), targTagName })).append("<br>");
targTagName })).append("<br>");
} else if (assignedCount > 1) { } else if (assignedCount > 1) {
formMsg.append(i18n.get("message.target.assigned.many", new Object[] { assignedCount, targTagName })) formMsg.append(i18n.get("message.target.assigned.many", new Object[] { assignedCount, targTagName }))
@@ -964,9 +959,8 @@ public final class HawkbitCommonUtil {
} }
if (unassignedCount == 1) { if (unassignedCount == 1) {
formMsg.append( formMsg.append(i18n.get("message.target.unassigned.one",
i18n.get("message.target.unassigned.one", new Object[] { result.getUnassignedDs().get(0).getName(), new Object[] { result.getUnassignedDs().get(0).getName(), targTagName })).append("<br>");
targTagName })).append("<br>");
} else if (unassignedCount > 1) { } else if (unassignedCount > 1) {
formMsg.append(i18n.get("message.target.unassigned.many", new Object[] { unassignedCount, targTagName })) formMsg.append(i18n.get("message.target.unassigned.many", new Object[] { unassignedCount, targTagName }))
.append("<br>"); .append("<br>");
@@ -987,8 +981,8 @@ public final class HawkbitCommonUtil {
final BeanQueryFactory<? extends AbstractBeanQuery> queryFactory) { final BeanQueryFactory<? extends AbstractBeanQuery> queryFactory) {
final Map<String, Object> queryConfig = new HashMap<String, Object>(); final Map<String, Object> queryConfig = new HashMap<String, Object>();
queryFactory.setQueryConfiguration(queryConfig); queryFactory.setQueryConfiguration(queryConfig);
final LazyQueryContainer typeContainer = new LazyQueryContainer(new LazyQueryDefinition(true, 20, final LazyQueryContainer typeContainer = new LazyQueryContainer(
SPUILabelDefinitions.VAR_NAME), queryFactory); new LazyQueryDefinition(true, 20, SPUILabelDefinitions.VAR_NAME), queryFactory);
return typeContainer; return typeContainer;
} }
@@ -1046,10 +1040,10 @@ public final class HawkbitCommonUtil {
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1f)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1f));
columnList columnList
.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.1f)); .add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.1f));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), columnList.add(
new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), 0.1f));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"),
0.1f)); 0.1f));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE,
i18n.get("header.modifiedDate"), 0.1f));
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.2f)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.2f));
} else if (isShowPinColumn) { } else if (isShowPinColumn) {
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_NAME, i18n.get(HEADER_NAME), 0.7f)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_NAME, i18n.get(HEADER_NAME), 0.7f));
@@ -1097,9 +1091,7 @@ public final class HawkbitCommonUtil {
*/ */
public static String changeToNewSelectedPreviewColor(final String colorPickedPreview) { public static String changeToNewSelectedPreviewColor(final String colorPickedPreview) {
final StringBuilder scriptBuilder = new StringBuilder(); final StringBuilder scriptBuilder = new StringBuilder();
scriptBuilder scriptBuilder.append(NEW_PREVIEW_COLOR_REMOVE_SCRIPT).append(NEW_PREVIEW_COLOR_CREATE_SCRIPT)
.append(NEW_PREVIEW_COLOR_REMOVE_SCRIPT)
.append(NEW_PREVIEW_COLOR_CREATE_SCRIPT)
.append("var newColorPreviewStyle = \".v-app .new-tag-name{ border: solid 3px ") .append("var newColorPreviewStyle = \".v-app .new-tag-name{ border: solid 3px ")
.append(colorPickedPreview) .append(colorPickedPreview)
.append(" !important; width:138px; margin-left:2px !important; box-shadow:none !important; } \"; ") .append(" !important; width:138px; margin-left:2px !important; box-shadow:none !important; } \"; ")
@@ -1119,9 +1111,7 @@ public final class HawkbitCommonUtil {
*/ */
public static String getPreviewButtonColorScript(final String color) { public static String getPreviewButtonColorScript(final String color) {
final StringBuilder scriptBuilder = new StringBuilder(); final StringBuilder scriptBuilder = new StringBuilder();
scriptBuilder scriptBuilder.append(PREVIEW_BUTTON_COLOR_REMOVE_SCRIPT).append(PREVIEW_BUTTON_COLOR_CREATE_SCRIPT)
.append(PREVIEW_BUTTON_COLOR_REMOVE_SCRIPT)
.append(PREVIEW_BUTTON_COLOR_CREATE_SCRIPT)
.append("var tagColorPreviewStyle = \".v-app .tag-color-preview{ height: 15px !important; padding: 0 10px !important; border: 0px !important; margin-left:12px !important; margin-top: 4px !important; border-width: 0 !important; background: ") .append("var tagColorPreviewStyle = \".v-app .tag-color-preview{ height: 15px !important; padding: 0 10px !important; border: 0px !important; margin-left:12px !important; margin-top: 4px !important; border-width: 0 !important; background: ")
.append(color) .append(color)
.append(" } .v-app .tag-color-preview:after{ border-color: none !important; box-shadow:none !important;} \"; ") .append(" } .v-app .tag-color-preview:after{ border-color: none !important; box-shadow:none !important;} \"; ")
@@ -1220,8 +1210,8 @@ public final class HawkbitCommonUtil {
false, false); false, false);
targetTableContainer.addContainerProperty(SPUILabelDefinitions.INSTALLED_DISTRIBUTION_ID, Long.class, null, targetTableContainer.addContainerProperty(SPUILabelDefinitions.INSTALLED_DISTRIBUTION_ID, Long.class, null,
false, false); false, false);
targetTableContainer.addContainerProperty(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER, String.class, targetTableContainer.addContainerProperty(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER, String.class, "",
"", false, true); false, true);
targetTableContainer.addContainerProperty(SPUILabelDefinitions.INSTALLED_DISTRIBUTION_NAME_VER, String.class, targetTableContainer.addContainerProperty(SPUILabelDefinitions.INSTALLED_DISTRIBUTION_NAME_VER, String.class,
"", false, true); "", false, true);
targetTableContainer.addContainerProperty(SPUILabelDefinitions.LAST_QUERY_DATE, Date.class, null, false, false); targetTableContainer.addContainerProperty(SPUILabelDefinitions.LAST_QUERY_DATE, Date.class, null, false, false);
@@ -1251,8 +1241,8 @@ public final class HawkbitCommonUtil {
public static void applyStatusLblStyle(final Table targetTable, final Button pinBtn, final Object itemId) { public static void applyStatusLblStyle(final Table targetTable, final Button pinBtn, final Object itemId) {
final Item item = targetTable.getItem(itemId); final Item item = targetTable.getItem(itemId);
if (item != null) { if (item != null) {
final TargetUpdateStatus updateStatus = (TargetUpdateStatus) item.getItemProperty( final TargetUpdateStatus updateStatus = (TargetUpdateStatus) item
SPUILabelDefinitions.VAR_TARGET_STATUS).getValue(); .getItemProperty(SPUILabelDefinitions.VAR_TARGET_STATUS).getValue();
pinBtn.removeStyleName("statusIconRed statusIconBlue statusIconGreen statusIconYellow statusIconLightBlue"); pinBtn.removeStyleName("statusIconRed statusIconBlue statusIconGreen statusIconYellow statusIconLightBlue");
if (updateStatus == TargetUpdateStatus.ERROR) { if (updateStatus == TargetUpdateStatus.ERROR) {
pinBtn.addStyleName("statusIconRed"); pinBtn.addStyleName("statusIconRed");