remove singleton instance wihthin TenantConfigurationManagement
Signed-off-by: Michael Hirsch <michael.hirsch@bosch-si.com>
This commit is contained in:
@@ -19,6 +19,7 @@ import org.eclipse.hawkbit.repository.model.helper.CacheManagerHolder;
|
|||||||
import org.eclipse.hawkbit.repository.model.helper.SecurityTokenGeneratorHolder;
|
import org.eclipse.hawkbit.repository.model.helper.SecurityTokenGeneratorHolder;
|
||||||
import org.eclipse.hawkbit.repository.model.helper.SystemManagementHolder;
|
import org.eclipse.hawkbit.repository.model.helper.SystemManagementHolder;
|
||||||
import org.eclipse.hawkbit.repository.model.helper.TenantAwareHolder;
|
import org.eclipse.hawkbit.repository.model.helper.TenantAwareHolder;
|
||||||
|
import org.eclipse.hawkbit.repository.model.helper.TenantConfigurationManagementHolder;
|
||||||
import org.eclipse.hawkbit.security.SecurityTokenGenerator;
|
import org.eclipse.hawkbit.security.SecurityTokenGenerator;
|
||||||
import org.eclipse.hawkbit.tenancy.TenantAware;
|
import org.eclipse.hawkbit.tenancy.TenantAware;
|
||||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||||
@@ -54,8 +55,8 @@ public class RepositoryApplicationConfiguration extends JpaBaseConfiguration {
|
|||||||
* directly, e.g. JPA entities.
|
* directly, e.g. JPA entities.
|
||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
public TenantConfigurationManagement tenantConfigurationManagement() {
|
public TenantConfigurationManagementHolder tenantConfigurationManagementHolder() {
|
||||||
return TenantConfigurationManagement.getInstance();
|
return TenantConfigurationManagementHolder.getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import org.springframework.core.convert.support.DefaultConversionService;
|
|||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
import org.springframework.data.jpa.repository.Modifying;
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
@@ -32,10 +33,9 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
*/
|
*/
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
@Validated
|
@Validated
|
||||||
|
@Service
|
||||||
public class TenantConfigurationManagement implements EnvironmentAware {
|
public class TenantConfigurationManagement implements EnvironmentAware {
|
||||||
|
|
||||||
private static final TenantConfigurationManagement INSTANCE = new TenantConfigurationManagement();
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TenantConfigurationRepository tenantConfigurationRepository;
|
private TenantConfigurationRepository tenantConfigurationRepository;
|
||||||
|
|
||||||
@@ -46,16 +46,6 @@ public class TenantConfigurationManagement implements EnvironmentAware {
|
|||||||
|
|
||||||
private Environment environment;
|
private Environment environment;
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Singleton instance, needed for classes which are not managed in
|
|
||||||
* Spring context
|
|
||||||
*
|
|
||||||
* @return singleton instance of TenantConfigurationManagement
|
|
||||||
*/
|
|
||||||
public static TenantConfigurationManagement getInstance() {
|
|
||||||
return INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves a configuration value from the e.g. tenant overwritten
|
* Retrieves a configuration value from the e.g. tenant overwritten
|
||||||
* configuration values or in case the tenant does not a have a specific
|
* configuration values or in case the tenant does not a have a specific
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import javax.persistence.OneToOne;
|
|||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import javax.persistence.Transient;
|
import javax.persistence.Transient;
|
||||||
|
|
||||||
import org.eclipse.hawkbit.repository.TenantConfigurationManagement;
|
import org.eclipse.hawkbit.repository.model.helper.TenantConfigurationManagementHolder;
|
||||||
import org.eclipse.hawkbit.tenancy.configuration.DurationHelper;
|
import org.eclipse.hawkbit.tenancy.configuration.DurationHelper;
|
||||||
import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationKey;
|
import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationKey;
|
||||||
import org.eclipse.persistence.annotations.CascadeOnDelete;
|
import org.eclipse.persistence.annotations.CascadeOnDelete;
|
||||||
@@ -246,11 +246,12 @@ public class TargetInfo implements Persistable<Long>, Serializable {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Duration pollTime = DurationHelper.formattedStringToDuration(TenantConfigurationManagement.getInstance()
|
final Duration pollTime = DurationHelper.formattedStringToDuration(
|
||||||
.getConfigurationValue(TenantConfigurationKey.POLLING_TIME_INTERVAL, String.class).getValue());
|
TenantConfigurationManagementHolder.getInstance().getTenantConfigurationManagement()
|
||||||
final Duration overdueTime = DurationHelper.formattedStringToDuration(TenantConfigurationManagement
|
.getConfigurationValue(TenantConfigurationKey.POLLING_TIME_INTERVAL, String.class).getValue());
|
||||||
.getInstance().getConfigurationValue(TenantConfigurationKey.POLLING_OVERDUE_TIME_INTERVAL, String.class)
|
final Duration overdueTime = DurationHelper.formattedStringToDuration(TenantConfigurationManagementHolder
|
||||||
.getValue());
|
.getInstance().getTenantConfigurationManagement()
|
||||||
|
.getConfigurationValue(TenantConfigurationKey.POLLING_OVERDUE_TIME_INTERVAL, String.class).getValue());
|
||||||
final LocalDateTime currentDate = LocalDateTime.now();
|
final LocalDateTime currentDate = LocalDateTime.now();
|
||||||
final LocalDateTime lastPollDate = LocalDateTime.ofInstant(Instant.ofEpochMilli(lastTargetQuery),
|
final LocalDateTime lastPollDate = LocalDateTime.ofInstant(Instant.ofEpochMilli(lastTargetQuery),
|
||||||
ZoneId.systemDefault());
|
ZoneId.systemDefault());
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2015 Bosch Software Innovations GmbH and others.
|
||||||
|
*
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
*/
|
||||||
|
package org.eclipse.hawkbit.repository.model.helper;
|
||||||
|
|
||||||
|
import org.eclipse.hawkbit.repository.TenantConfigurationManagement;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A singleton bean which holds {@link TenantConfigurationManagement} service
|
||||||
|
* and makes it accessible to beans which are not managed by spring, e.g. JPA
|
||||||
|
* entities.
|
||||||
|
*/
|
||||||
|
public final class TenantConfigurationManagementHolder {
|
||||||
|
|
||||||
|
private static final TenantConfigurationManagementHolder INSTANCE = new TenantConfigurationManagementHolder();
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TenantConfigurationManagement tenantConfiguration;
|
||||||
|
|
||||||
|
private TenantConfigurationManagementHolder() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the singleton {@link TenantConfigurationManagementHolder}
|
||||||
|
* instance
|
||||||
|
*/
|
||||||
|
public static TenantConfigurationManagementHolder getInstance() {
|
||||||
|
return INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the {@link TenantConfigurationManagement} service
|
||||||
|
*/
|
||||||
|
public TenantConfigurationManagement getTenantConfigurationManagement() {
|
||||||
|
return tenantConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user