diff --git a/dao/src/main/java/org/thingsboard/server/dao/JpaDaoConfig.java b/dao/src/main/java/org/thingsboard/server/dao/JpaDaoConfig.java index 89f02c7545..7c791cf2ec 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/JpaDaoConfig.java +++ b/dao/src/main/java/org/thingsboard/server/dao/JpaDaoConfig.java @@ -16,13 +16,12 @@ package org.thingsboard.server.dao; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.transaction.annotation.EnableTransactionManagement; +import org.thingsboard.server.dao.annotation.SqlDao; /** * @author Valerii Sosliuk @@ -33,7 +32,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @EnableJpaRepositories("org.thingsboard.server.dao.sql") @EntityScan("org.thingsboard.server.dao.model.sql") @EnableTransactionManagement -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true") +@SqlDao public class JpaDaoConfig { } diff --git a/dao/src/main/java/org/thingsboard/server/dao/NoSqlDaoConfig.java b/dao/src/main/java/org/thingsboard/server/dao/NoSqlDaoConfig.java index 76cc66b5d6..234ae882dd 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/NoSqlDaoConfig.java +++ b/dao/src/main/java/org/thingsboard/server/dao/NoSqlDaoConfig.java @@ -16,11 +16,11 @@ package org.thingsboard.server.dao; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; import org.springframework.context.annotation.Configuration; +import org.thingsboard.server.dao.annotation.NoSqlDao; @Configuration @EnableAutoConfiguration( @@ -28,6 +28,6 @@ import org.springframework.context.annotation.Configuration; DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true") +@NoSqlDao public class NoSqlDaoConfig { } diff --git a/dao/src/main/java/org/thingsboard/server/dao/alarm/CassandraAlarmDao.java b/dao/src/main/java/org/thingsboard/server/dao/alarm/CassandraAlarmDao.java index f437751655..d15f38a9c8 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/alarm/CassandraAlarmDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/alarm/CassandraAlarmDao.java @@ -23,7 +23,6 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.alarm.Alarm; @@ -35,6 +34,7 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.common.data.relation.RelationTypeGroup; import org.thingsboard.server.dao.CassandraAbstractModelDao; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.model.nosql.AlarmEntity; import org.thingsboard.server.dao.relation.RelationDao; @@ -49,7 +49,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.*; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraAlarmDao extends CassandraAbstractModelDao implements AlarmDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/annotation/NoSqlDao.java b/dao/src/main/java/org/thingsboard/server/dao/annotation/NoSqlDao.java new file mode 100644 index 0000000000..f4ec83bbf8 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/annotation/NoSqlDao.java @@ -0,0 +1,7 @@ +package org.thingsboard.server.dao.annotation; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; + +@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true") +public @interface NoSqlDao { +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/annotation/SqlDao.java b/dao/src/main/java/org/thingsboard/server/dao/annotation/SqlDao.java new file mode 100644 index 0000000000..e5a11b17a3 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/annotation/SqlDao.java @@ -0,0 +1,7 @@ +package org.thingsboard.server.dao.annotation; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; + +@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true") +public @interface SqlDao { +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/CassandraAssetDao.java b/dao/src/main/java/org/thingsboard/server/dao/asset/CassandraAssetDao.java index d78b93189a..ce8111d54c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/asset/CassandraAssetDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/asset/CassandraAssetDao.java @@ -23,13 +23,13 @@ import com.google.common.base.Function; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.asset.TenantAssetType; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.dao.CassandraAbstractSearchTextDao; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.TenantAssetTypeEntity; import org.thingsboard.server.dao.model.nosql.AssetEntity; @@ -41,7 +41,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.*; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraAssetDao extends CassandraAbstractSearchTextDao implements AssetDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/attributes/CassandraBaseAttributesDao.java b/dao/src/main/java/org/thingsboard/server/dao/attributes/CassandraBaseAttributesDao.java index a98f054391..1dd7a6dc47 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/attributes/CassandraBaseAttributesDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/attributes/CassandraBaseAttributesDao.java @@ -22,12 +22,12 @@ import com.google.common.base.Function; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.kv.AttributeKvEntry; import org.thingsboard.server.common.data.kv.BaseAttributeKvEntry; import org.thingsboard.server.dao.CassandraAbstractAsyncDao; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.timeseries.CassandraBaseTimeseriesDao; @@ -48,7 +48,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.*; */ @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraBaseAttributesDao extends CassandraAbstractAsyncDao implements AttributesDao { private PreparedStatement saveStmt; diff --git a/dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraCluster.java b/dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraCluster.java index 6bffb3e3b4..8649122248 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraCluster.java +++ b/dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraCluster.java @@ -25,8 +25,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; +import org.thingsboard.server.dao.annotation.NoSqlDao; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; @@ -38,7 +38,7 @@ import java.util.List; @Component @Slf4j @Data -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true") +@NoSqlDao public class CassandraCluster { private static final String COMMA = ","; diff --git a/dao/src/main/java/org/thingsboard/server/dao/component/CassandraBaseComponentDescriptorDao.java b/dao/src/main/java/org/thingsboard/server/dao/component/CassandraBaseComponentDescriptorDao.java index 0c7984e254..64ae0c03e9 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/component/CassandraBaseComponentDescriptorDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/component/CassandraBaseComponentDescriptorDao.java @@ -21,7 +21,6 @@ import com.datastax.driver.core.querybuilder.QueryBuilder; import com.datastax.driver.core.querybuilder.Select; import com.datastax.driver.core.utils.UUIDs; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.id.ComponentDescriptorId; import org.thingsboard.server.common.data.page.TextPageLink; @@ -30,8 +29,9 @@ import org.thingsboard.server.common.data.plugin.ComponentScope; import org.thingsboard.server.common.data.plugin.ComponentType; import org.thingsboard.server.dao.CassandraAbstractSearchTextDao; import org.thingsboard.server.dao.DaoUtil; -import org.thingsboard.server.dao.model.nosql.ComponentDescriptorEntity; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; +import org.thingsboard.server.dao.model.nosql.ComponentDescriptorEntity; import java.util.Arrays; import java.util.List; @@ -46,7 +46,7 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.select; */ @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraBaseComponentDescriptorDao extends CassandraAbstractSearchTextDao implements ComponentDescriptorDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/customer/CassandraCustomerDao.java b/dao/src/main/java/org/thingsboard/server/dao/customer/CassandraCustomerDao.java index 7a1c67db83..c363d330f0 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/customer/CassandraCustomerDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/customer/CassandraCustomerDao.java @@ -15,31 +15,28 @@ */ package org.thingsboard.server.dao.customer; -import static com.datastax.driver.core.querybuilder.QueryBuilder.select; -import static org.thingsboard.server.dao.model.ModelConstants.CUSTOMER_BY_TENANT_AND_TITLE_VIEW_NAME; -import static org.thingsboard.server.dao.model.ModelConstants.CUSTOMER_TITLE_PROPERTY; -import static org.thingsboard.server.dao.model.ModelConstants.CUSTOMER_TENANT_ID_PROPERTY; - -import java.util.Optional; import com.datastax.driver.core.querybuilder.Select; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.dao.CassandraAbstractSearchTextDao; import org.thingsboard.server.dao.DaoUtil; -import org.thingsboard.server.dao.model.nosql.CustomerEntity; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; +import org.thingsboard.server.dao.model.nosql.CustomerEntity; import java.util.Arrays; import java.util.List; +import java.util.Optional; import java.util.UUID; import static com.datastax.driver.core.querybuilder.QueryBuilder.eq; +import static com.datastax.driver.core.querybuilder.QueryBuilder.select; +import static org.thingsboard.server.dao.model.ModelConstants.*; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraCustomerDao extends CassandraAbstractSearchTextDao implements CustomerDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardDao.java b/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardDao.java index c0ea1dc0f4..d323ff857a 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardDao.java @@ -15,16 +15,16 @@ */ package org.thingsboard.server.dao.dashboard; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.Dashboard; import org.thingsboard.server.dao.CassandraAbstractSearchTextDao; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.nosql.DashboardEntity; import static org.thingsboard.server.dao.model.ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME; @Component -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraDashboardDao extends CassandraAbstractSearchTextDao implements DashboardDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardInfoDao.java index 366ec1f82a..61ce9e199b 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardInfoDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardInfoDao.java @@ -16,12 +16,12 @@ package org.thingsboard.server.dao.dashboard; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.DashboardInfo; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.dao.CassandraAbstractSearchTextDao; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.nosql.DashboardInfoEntity; import java.util.Arrays; @@ -34,7 +34,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.*; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraDashboardInfoDao extends CassandraAbstractSearchTextDao implements DashboardInfoDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceCredentialsDao.java b/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceCredentialsDao.java index 517b8cb019..5ee86706f9 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceCredentialsDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceCredentialsDao.java @@ -17,13 +17,13 @@ package org.thingsboard.server.dao.device; import com.datastax.driver.core.querybuilder.Select.Where; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.dao.CassandraAbstractModelDao; import org.thingsboard.server.dao.DaoUtil; -import org.thingsboard.server.dao.model.nosql.DeviceCredentialsEntity; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; +import org.thingsboard.server.dao.model.nosql.DeviceCredentialsEntity; import java.util.UUID; @@ -32,7 +32,7 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.select; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraDeviceCredentialsDao extends CassandraAbstractModelDao implements DeviceCredentialsDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceDao.java b/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceDao.java index 28d97cb933..6b889c18f8 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceDao.java @@ -23,13 +23,13 @@ import com.google.common.base.Function; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.TenantDeviceType; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.dao.CassandraAbstractSearchTextDao; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.TenantDeviceTypeEntity; import org.thingsboard.server.dao.model.nosql.DeviceEntity; @@ -41,7 +41,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.*; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraDeviceDao extends CassandraAbstractSearchTextDao implements DeviceDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/event/CassandraBaseEventDao.java b/dao/src/main/java/org/thingsboard/server/dao/event/CassandraBaseEventDao.java index 4d9da2189c..741e251af2 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/event/CassandraBaseEventDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/event/CassandraBaseEventDao.java @@ -22,7 +22,6 @@ import com.datastax.driver.core.querybuilder.Select; import com.datastax.driver.core.utils.UUIDs; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.Event; import org.thingsboard.server.common.data.id.EntityId; @@ -31,8 +30,9 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.TimePageLink; import org.thingsboard.server.dao.CassandraAbstractSearchTimeDao; import org.thingsboard.server.dao.DaoUtil; -import org.thingsboard.server.dao.model.nosql.EventEntity; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; +import org.thingsboard.server.dao.model.nosql.EventEntity; import java.util.Arrays; import java.util.List; @@ -45,7 +45,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.*; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraBaseEventDao extends CassandraAbstractSearchTimeDao implements EventDao { private final TenantId systemTenantId = new TenantId(NULL_UUID); diff --git a/dao/src/main/java/org/thingsboard/server/dao/plugin/CassandraBasePluginDao.java b/dao/src/main/java/org/thingsboard/server/dao/plugin/CassandraBasePluginDao.java index efcbacd5bb..6126aef9a7 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/plugin/CassandraBasePluginDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/plugin/CassandraBasePluginDao.java @@ -17,7 +17,6 @@ package org.thingsboard.server.dao.plugin; import com.datastax.driver.core.querybuilder.Select; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.id.PluginId; import org.thingsboard.server.common.data.id.TenantId; @@ -25,6 +24,7 @@ import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.common.data.plugin.PluginMetaData; import org.thingsboard.server.dao.CassandraAbstractSearchTextDao; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.model.nosql.PluginMetaDataEntity; @@ -37,7 +37,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraBasePluginDao extends CassandraAbstractSearchTextDao implements PluginDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationDao.java b/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationDao.java index af76971dd3..14c1cf3faa 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationDao.java @@ -19,11 +19,8 @@ import com.datastax.driver.core.*; import com.datastax.driver.core.querybuilder.QueryBuilder; import com.datastax.driver.core.querybuilder.Select; import com.fasterxml.jackson.databind.JsonNode; -import com.google.common.base.Function; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.id.EntityId; @@ -33,10 +30,10 @@ import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.common.data.relation.RelationTypeGroup; import org.thingsboard.server.dao.CassandraAbstractAsyncDao; import org.thingsboard.server.dao.CassandraAbstractSearchTimeDao; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.model.type.RelationTypeGroupCodec; -import javax.annotation.Nullable; import javax.annotation.PostConstruct; import java.util.ArrayList; import java.util.Arrays; @@ -49,7 +46,7 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.eq; */ @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class BaseRelationDao extends CassandraAbstractAsyncDao implements RelationDao { private static final String SELECT_COLUMNS = "SELECT " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/rule/CassandraBaseRuleDao.java b/dao/src/main/java/org/thingsboard/server/dao/rule/CassandraBaseRuleDao.java index 962cd59f74..33465cb2d8 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/rule/CassandraBaseRuleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/rule/CassandraBaseRuleDao.java @@ -17,7 +17,6 @@ package org.thingsboard.server.dao.rule; import com.datastax.driver.core.querybuilder.Select; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.id.RuleId; import org.thingsboard.server.common.data.id.TenantId; @@ -25,6 +24,7 @@ import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.common.data.rule.RuleMetaData; import org.thingsboard.server.dao.CassandraAbstractSearchTextDao; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.model.nosql.RuleMetaDataEntity; @@ -37,7 +37,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraBaseRuleDao extends CassandraAbstractSearchTextDao implements RuleDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/settings/CassandraAdminSettingsDao.java b/dao/src/main/java/org/thingsboard/server/dao/settings/CassandraAdminSettingsDao.java index a69d30f820..14017d89cb 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/settings/CassandraAdminSettingsDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/settings/CassandraAdminSettingsDao.java @@ -17,11 +17,11 @@ package org.thingsboard.server.dao.settings; import com.datastax.driver.core.querybuilder.Select.Where; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.AdminSettings; import org.thingsboard.server.dao.CassandraAbstractModelDao; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.nosql.AdminSettingsEntity; import static com.datastax.driver.core.querybuilder.QueryBuilder.eq; @@ -30,7 +30,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.*; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraAdminSettingsDao extends CassandraAbstractModelDao implements AdminSettingsDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java index 948ee9cede..a7162cdc25 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.sql.alarm; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.AlarmEntity; import java.util.UUID; @@ -26,7 +26,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 5/21/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface AlarmRepository extends CrudRepository { @Query(nativeQuery = true, value = "SELECT * FROM ALARM WHERE TENANT_ID = :tenantId AND ORIGINATOR_ID = :originatorId " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java index d79d8ac849..5517ec1601 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java @@ -21,7 +21,6 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -37,6 +36,7 @@ import org.thingsboard.server.common.data.relation.RelationTypeGroup; import org.thingsboard.server.dao.DaoUtil; import org.thingsboard.server.dao.alarm.AlarmDao; import org.thingsboard.server.dao.alarm.BaseAlarmService; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.AlarmEntity; import org.thingsboard.server.dao.relation.RelationDao; import org.thingsboard.server.dao.sql.JpaAbstractDao; @@ -52,7 +52,7 @@ import static org.springframework.transaction.annotation.Propagation.REQUIRES_NE */ @Slf4j @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaAlarmDao extends JpaAbstractDao implements AlarmDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java index 68bcea42d5..3f5e4915b9 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java @@ -15,11 +15,11 @@ */ package org.thingsboard.server.dao.sql.asset; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; import org.thingsboard.server.common.data.asset.TenantAssetType; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.AssetEntity; import java.util.List; @@ -28,7 +28,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 5/21/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface AssetRepository extends CrudRepository { @Query(nativeQuery = true, value = "SELECT * FROM ASSET WHERE TENANT_ID = :tenantId " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java index f6296dda91..39f8111109 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java @@ -17,13 +17,13 @@ package org.thingsboard.server.dao.sql.asset; import com.google.common.util.concurrent.ListenableFuture; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.asset.TenantAssetType; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.asset.AssetDao; import org.thingsboard.server.dao.model.sql.AssetEntity; import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; @@ -38,7 +38,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; * Created by Valerii Sosliuk on 5/19/2017. */ @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaAssetDao extends JpaAbstractSearchTextDao implements AssetDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/AttributeKvRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/AttributeKvRepository.java index a231f8733e..a090049eb1 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/AttributeKvRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/AttributeKvRepository.java @@ -15,15 +15,15 @@ */ package org.thingsboard.server.dao.sql.attributes; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.AttributeKvCompositeKey; import org.thingsboard.server.dao.model.sql.AttributeKvEntity; import java.util.List; import java.util.UUID; -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true") +@SqlDao public interface AttributeKvRepository extends CrudRepository { List findAllByEntityTypeAndEntityIdAndAttributeType(String entityType, diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java index 32603359d6..cf69004050 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java @@ -19,11 +19,11 @@ import com.google.common.collect.Lists; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.kv.AttributeKvEntry; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.attributes.AttributesDao; import org.thingsboard.server.dao.model.sql.AttributeKvCompositeKey; import org.thingsboard.server.dao.model.sql.AttributeKvEntity; @@ -36,7 +36,7 @@ import java.util.stream.Collectors; @Component @Slf4j -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true") +@SqlDao public class JpaAttributeDao extends JpaAbstractDaoListeningExecutorService implements AttributesDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java index 266ae494d9..e86b838213 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.sql.component; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.ComponentDescriptorEntity; import java.util.List; @@ -27,7 +27,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 5/6/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface ComponentDescriptorRepository extends CrudRepository { ComponentDescriptorEntity findByClazz(String clazz); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java index 405af2ad64..023e7a5a01 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java @@ -17,7 +17,6 @@ package org.thingsboard.server.dao.sql.component; import com.datastax.driver.core.utils.UUIDs; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.id.ComponentDescriptorId; @@ -26,6 +25,7 @@ import org.thingsboard.server.common.data.plugin.ComponentDescriptor; import org.thingsboard.server.common.data.plugin.ComponentScope; import org.thingsboard.server.common.data.plugin.ComponentType; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.component.ComponentDescriptorDao; import org.thingsboard.server.dao.model.sql.ComponentDescriptorEntity; import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; @@ -40,7 +40,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; * Created by Valerii Sosliuk on 5/6/2017. */ @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaBaseComponentDescriptorDao extends JpaAbstractSearchTextDao implements ComponentDescriptorDao { diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/customer/CustomerRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/customer/CustomerRepository.java index 3ce55c008f..0bf4f13943 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/customer/CustomerRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/customer/CustomerRepository.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.sql.customer; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.CustomerEntity; import java.util.List; @@ -27,7 +27,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 5/6/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface CustomerRepository extends CrudRepository { @Query(nativeQuery = true, value = "SELECT * FROM CUSTOMER WHERE TENANT_ID = :tenantId " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java index a50526611c..d5ae9aba83 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java @@ -16,12 +16,12 @@ package org.thingsboard.server.dao.sql.customer; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.customer.CustomerDao; import org.thingsboard.server.dao.model.sql.CustomerEntity; import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; @@ -36,7 +36,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; * Created by Valerii Sosliuk on 5/6/2017. */ @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaCustomerDao extends JpaAbstractSearchTextDao implements CustomerDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java index 16bd0a2df7..a4e3412c35 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.sql.dashboard; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.DashboardInfoEntity; import java.util.List; @@ -27,7 +27,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 5/6/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface DashboardInfoRepository extends CrudRepository { @Query(nativeQuery = true, value = "SELECT * FROM DASHBOARD WHERE TENANT_ID = :tenantId " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java index 11fae3a51a..9b8c42d06b 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java @@ -15,8 +15,8 @@ */ package org.thingsboard.server.dao.sql.dashboard; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.DashboardEntity; import java.util.UUID; @@ -24,6 +24,6 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 5/6/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface DashboardRepository extends CrudRepository { } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java index 5f14110af4..d40400016e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java @@ -16,23 +16,21 @@ package org.thingsboard.server.dao.sql.dashboard; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.Dashboard; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.dashboard.DashboardDao; import org.thingsboard.server.dao.model.sql.DashboardEntity; import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; import java.util.UUID; -import static org.thingsboard.server.dao.model.ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME; - /** * Created by Valerii Sosliuk on 5/6/2017. */ @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaDashboardDao extends JpaAbstractSearchTextDao implements DashboardDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java index 77401c64c8..d1d2b776d6 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java @@ -16,12 +16,12 @@ package org.thingsboard.server.dao.sql.dashboard; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.DashboardInfo; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.dashboard.DashboardInfoDao; import org.thingsboard.server.dao.model.sql.DashboardInfoEntity; import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; @@ -35,7 +35,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; * Created by Valerii Sosliuk on 5/6/2017. */ @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaDashboardInfoDao extends JpaAbstractSearchTextDao implements DashboardInfoDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceCredentialsRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceCredentialsRepository.java index 229e6d5422..b3dfcf4e5d 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceCredentialsRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceCredentialsRepository.java @@ -15,9 +15,8 @@ */ package org.thingsboard.server.dao.sql.device; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; -import org.springframework.stereotype.Component; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.DeviceCredentialsEntity; import java.util.UUID; @@ -25,7 +24,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 5/6/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface DeviceCredentialsRepository extends CrudRepository { DeviceCredentialsEntity findByDeviceId(UUID deviceId); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java index 0386aa86fc..8102553fd5 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.sql.device; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.DeviceEntity; import org.thingsboard.server.dao.model.sql.TenantDeviceTypeEntity; @@ -28,7 +28,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 5/6/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface DeviceRepository extends CrudRepository { diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java index 0cb3489f5d..97e3363940 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java @@ -16,13 +16,12 @@ package org.thingsboard.server.dao.sql.device; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.device.DeviceCredentialsDao; -import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.model.sql.DeviceCredentialsEntity; import org.thingsboard.server.dao.sql.JpaAbstractDao; @@ -32,7 +31,7 @@ import java.util.UUID; * Created by Valerii Sosliuk on 5/6/2017. */ @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaDeviceCredentialsDao extends JpaAbstractDao implements DeviceCredentialsDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java index 455075c945..68f4262d7c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java @@ -17,7 +17,6 @@ package org.thingsboard.server.dao.sql.device; import com.google.common.util.concurrent.ListenableFuture; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.Device; @@ -25,6 +24,7 @@ import org.thingsboard.server.common.data.TenantDeviceType; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.device.DeviceDao; import org.thingsboard.server.dao.model.sql.DeviceEntity; import org.thingsboard.server.dao.model.sql.TenantDeviceTypeEntity; @@ -38,7 +38,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; * Created by Valerii Sosliuk on 5/6/2017. */ @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaDeviceDao extends JpaAbstractSearchTextDao implements DeviceDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java index 82ccc62bc7..9719e836f6 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.sql.event; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; import org.thingsboard.server.common.data.EntityType; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.EventEntity; import java.util.UUID; @@ -26,7 +26,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 5/3/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface EventRepository extends CrudRepository, JpaSpecificationExecutor { EventEntity findByTenantIdAndEntityTypeAndEntityIdAndEventTypeAndEventUid( diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java index 649a201c15..37ef0582d9 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java @@ -19,7 +19,6 @@ import com.datastax.driver.core.utils.UUIDs; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; @@ -31,6 +30,7 @@ import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EventId; import org.thingsboard.server.common.data.page.TimePageLink; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.event.EventDao; import org.thingsboard.server.dao.model.sql.EventEntity; import org.thingsboard.server.dao.sql.JpaAbstractSearchTimeDao; @@ -53,7 +53,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; */ @Slf4j @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaBaseEventDao extends JpaAbstractSearchTimeDao implements EventDao { private final UUID systemTenantId = NULL_UUID; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/JpaBasePluginDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/JpaBasePluginDao.java index 0463200241..109ea553fb 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/JpaBasePluginDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/JpaBasePluginDao.java @@ -17,7 +17,6 @@ package org.thingsboard.server.dao.sql.plugin; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.id.PluginId; @@ -25,6 +24,7 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.common.data.plugin.PluginMetaData; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.PluginMetaDataEntity; import org.thingsboard.server.dao.plugin.PluginDao; import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; @@ -40,7 +40,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; */ @Slf4j @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaBasePluginDao extends JpaAbstractSearchTextDao implements PluginDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/PluginMetaDataRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/PluginMetaDataRepository.java index b21bfae1d1..e05fe81579 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/PluginMetaDataRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/PluginMetaDataRepository.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.sql.plugin; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.PluginMetaDataEntity; import java.util.List; @@ -27,7 +27,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 5/1/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface PluginMetaDataRepository extends CrudRepository { PluginMetaDataEntity findByApiToken(String apiToken); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java index db33808eb8..550424c82a 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java @@ -18,7 +18,6 @@ package org.thingsboard.server.dao.sql.relation; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; @@ -31,6 +30,7 @@ import org.thingsboard.server.common.data.page.TimePageLink; import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.common.data.relation.RelationTypeGroup; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.RelationCompositeKey; import org.thingsboard.server.dao.model.sql.RelationEntity; import org.thingsboard.server.dao.relation.RelationDao; @@ -53,7 +53,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.*; */ @Slf4j @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaRelationDao extends JpaAbstractDaoListeningExecutorService implements RelationDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java index d995b854d1..2f0cd7a914 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java @@ -15,16 +15,16 @@ */ package org.thingsboard.server.dao.sql.relation; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.RelationCompositeKey; import org.thingsboard.server.dao.model.sql.RelationEntity; import java.util.List; import java.util.UUID; -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true") +@SqlDao public interface RelationRepository extends CrudRepository, JpaSpecificationExecutor { diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaBaseRuleDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaBaseRuleDao.java index b1f53a93b7..1ad16e2cb6 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaBaseRuleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaBaseRuleDao.java @@ -17,7 +17,6 @@ package org.thingsboard.server.dao.sql.rule; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.id.RuleId; @@ -25,6 +24,7 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.common.data.rule.RuleMetaData; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.RuleMetaDataEntity; import org.thingsboard.server.dao.rule.RuleDao; import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; @@ -40,7 +40,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; */ @Slf4j @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaBaseRuleDao extends JpaAbstractSearchTextDao implements RuleDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleMetaDataRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleMetaDataRepository.java index 0bf6742672..9336e6965a 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleMetaDataRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleMetaDataRepository.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.sql.rule; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.RuleMetaDataEntity; import java.util.List; @@ -27,7 +27,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 4/30/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface RuleMetaDataRepository extends CrudRepository { List findByPluginToken(String pluginToken); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/settings/JpaAdminSettingsDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/settings/JpaAdminSettingsDao.java index e31c5d0569..5433a13337 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/settings/JpaAdminSettingsDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/settings/JpaAdminSettingsDao.java @@ -17,11 +17,11 @@ package org.thingsboard.server.dao.sql.settings; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.AdminSettings; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.AdminSettingsEntity; import org.thingsboard.server.dao.settings.AdminSettingsDao; import org.thingsboard.server.dao.sql.JpaAbstractDao; @@ -30,7 +30,7 @@ import java.util.UUID; @Component @Slf4j -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true") +@SqlDao public class JpaAdminSettingsDao extends JpaAbstractDao implements AdminSettingsDao{ @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantDao.java index e434431ec3..ddd6f7d430 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/JpaTenantDao.java @@ -16,12 +16,12 @@ package org.thingsboard.server.dao.sql.tenant; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.Tenant; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.TenantEntity; import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; import org.thingsboard.server.dao.tenant.TenantDao; @@ -35,7 +35,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; * Created by Valerii Sosliuk on 4/30/2017. */ @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaTenantDao extends JpaAbstractSearchTextDao implements TenantDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java index 8c6a9546c3..10f58b3158 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.sql.tenant; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.TenantEntity; import java.util.List; @@ -27,7 +27,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 4/30/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface TenantRepository extends CrudRepository { @Query(nativeQuery = true, value = "SELECT * FROM TENANT WHERE REGION = :region " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/JpaTimeseriesDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/JpaTimeseriesDao.java index f3371f23e4..df37ae74c0 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/JpaTimeseriesDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/JpaTimeseriesDao.java @@ -19,12 +19,12 @@ import com.google.common.collect.Lists; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.kv.TsKvEntry; import org.thingsboard.server.common.data.kv.TsKvQuery; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.TsKvEntity; import org.thingsboard.server.dao.model.sql.TsKvLatestCompositeKey; import org.thingsboard.server.dao.model.sql.TsKvLatestEntity; @@ -35,7 +35,7 @@ import java.util.List; @Component @Slf4j -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true") +@SqlDao public class JpaTimeseriesDao extends JpaAbstractDaoListeningExecutorService implements TimeseriesDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/TsKvLatestRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/TsKvLatestRepository.java index 863064908f..7c447f190b 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/TsKvLatestRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/TsKvLatestRepository.java @@ -15,15 +15,15 @@ */ package org.thingsboard.server.dao.sql.timeseries; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.TsKvLatestCompositeKey; import org.thingsboard.server.dao.model.sql.TsKvLatestEntity; import java.util.List; import java.util.UUID; -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true") +@SqlDao public interface TsKvLatestRepository extends CrudRepository { List findAllByEntityTypeAndEntityId(String entityType, UUID entityId); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/TsKvRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/TsKvRepository.java index 6b087847f9..786184e157 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/TsKvRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/TsKvRepository.java @@ -15,11 +15,11 @@ */ package org.thingsboard.server.dao.sql.timeseries; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.TsKvCompositeKey; import org.thingsboard.server.dao.model.sql.TsKvEntity; -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true") +@SqlDao public interface TsKvRepository extends CrudRepository { } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserDao.java index ec1e6740e3..de2f5f9b5e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserDao.java @@ -16,12 +16,12 @@ package org.thingsboard.server.dao.sql.user; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.UserEntity; import org.thingsboard.server.dao.sql.JpaAbstractDao; import org.thingsboard.server.dao.user.UserDao; @@ -35,7 +35,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; * @author Valerii Sosliuk */ @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaUserDao extends JpaAbstractDao implements UserDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java index f9d280249c..a0fb882b0b 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.sql.user; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.UserEntity; import java.util.List; @@ -27,7 +27,7 @@ import java.util.UUID; /** * @author Valerii Sosliuk */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface UserRepository extends CrudRepository { UserEntity findByEmail(String email); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java index 58f9346239..b4a10813f5 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java @@ -16,11 +16,11 @@ package org.thingsboard.server.dao.sql.widget; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.widget.WidgetType; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.WidgetTypeEntity; import org.thingsboard.server.dao.sql.JpaAbstractDao; import org.thingsboard.server.dao.widget.WidgetTypeDao; @@ -28,13 +28,11 @@ import org.thingsboard.server.dao.widget.WidgetTypeDao; import java.util.List; import java.util.UUID; -import static org.thingsboard.server.dao.model.ModelConstants.WIDGET_TYPE_COLUMN_FAMILY_NAME; - /** * Created by Valerii Sosliuk on 4/29/2017. */ @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaWidgetTypeDao extends JpaAbstractDao implements WidgetTypeDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java index 670bd7fc8f..a3c06f1fb7 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java @@ -16,12 +16,12 @@ package org.thingsboard.server.dao.sql.widget; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.WidgetsBundleEntity; import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; import org.thingsboard.server.dao.widget.WidgetsBundleDao; @@ -35,7 +35,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; * Created by Valerii Sosliuk on 4/23/2017. */ @Component -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public class JpaWidgetsBundleDao extends JpaAbstractSearchTextDao implements WidgetsBundleDao { @Autowired diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java index 6161d12284..d85234ba70 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java @@ -15,9 +15,8 @@ */ package org.thingsboard.server.dao.sql.widget; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.repository.CrudRepository; -import org.thingsboard.server.common.data.widget.WidgetType; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.WidgetTypeEntity; import java.util.List; @@ -26,7 +25,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 4/29/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface WidgetTypeRepository extends CrudRepository { List findByTenantIdAndBundleAlias(UUID tenantId, String bundleAlias); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java index 1998a55cda..34f167d045 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.sql.widget; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.annotation.SqlDao; import org.thingsboard.server.dao.model.sql.WidgetsBundleEntity; import java.util.List; @@ -27,7 +27,7 @@ import java.util.UUID; /** * Created by Valerii Sosliuk on 4/23/2017. */ -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true", matchIfMissing = false) +@SqlDao public interface WidgetsBundleRepository extends CrudRepository { WidgetsBundleEntity findWidgetsBundleByTenantIdAndAlias(UUID tenantId, String alias); diff --git a/dao/src/main/java/org/thingsboard/server/dao/tenant/CassandraTenantDao.java b/dao/src/main/java/org/thingsboard/server/dao/tenant/CassandraTenantDao.java index e6e8db453d..97e098b042 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/tenant/CassandraTenantDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/tenant/CassandraTenantDao.java @@ -16,12 +16,12 @@ package org.thingsboard.server.dao.tenant; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.Tenant; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.dao.CassandraAbstractSearchTextDao; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.nosql.TenantEntity; import java.util.Arrays; @@ -32,7 +32,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.*; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraTenantDao extends CassandraAbstractSearchTextDao implements TenantDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/timeseries/CassandraBaseTimeseriesDao.java b/dao/src/main/java/org/thingsboard/server/dao/timeseries/CassandraBaseTimeseriesDao.java index bb9a1b571d..4c557e84c1 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/timeseries/CassandraBaseTimeseriesDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/timeseries/CassandraBaseTimeseriesDao.java @@ -25,12 +25,12 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.kv.*; import org.thingsboard.server.common.data.kv.DataType; import org.thingsboard.server.dao.CassandraAbstractAsyncDao; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; import javax.annotation.Nullable; @@ -51,7 +51,7 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.eq; */ @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true") +@NoSqlDao public class CassandraBaseTimeseriesDao extends CassandraAbstractAsyncDao implements TimeseriesDao { @Value("${cassandra.query.min_aggregation_step_ms}") diff --git a/dao/src/main/java/org/thingsboard/server/dao/user/CassandraUserCredentialsDao.java b/dao/src/main/java/org/thingsboard/server/dao/user/CassandraUserCredentialsDao.java index 6f94cab568..7d3b1fbce1 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/user/CassandraUserCredentialsDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/user/CassandraUserCredentialsDao.java @@ -22,6 +22,7 @@ import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.security.UserCredentials; import org.thingsboard.server.dao.CassandraAbstractModelDao; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.model.nosql.UserCredentialsEntity; @@ -32,7 +33,7 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.select; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraUserCredentialsDao extends CassandraAbstractModelDao implements UserCredentialsDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/user/CassandraUserDao.java b/dao/src/main/java/org/thingsboard/server/dao/user/CassandraUserDao.java index c5f11d16f6..e2f4c5514f 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/user/CassandraUserDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/user/CassandraUserDao.java @@ -17,13 +17,13 @@ package org.thingsboard.server.dao.user; import com.datastax.driver.core.querybuilder.Select.Where; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.common.data.security.Authority; import org.thingsboard.server.dao.CassandraAbstractSearchTextDao; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.model.nosql.UserEntity; @@ -36,7 +36,7 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.select; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraUserDao extends CassandraAbstractSearchTextDao implements UserDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/CassandraWidgetTypeDao.java b/dao/src/main/java/org/thingsboard/server/dao/widget/CassandraWidgetTypeDao.java index 2f06b017c8..5fcf623ad3 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/CassandraWidgetTypeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/CassandraWidgetTypeDao.java @@ -17,11 +17,11 @@ package org.thingsboard.server.dao.widget; import com.datastax.driver.core.querybuilder.Select.Where; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.widget.WidgetType; import org.thingsboard.server.dao.CassandraAbstractModelDao; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.nosql.WidgetTypeEntity; import java.util.List; @@ -33,7 +33,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.*; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraWidgetTypeDao extends CassandraAbstractModelDao implements WidgetTypeDao { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/CassandraWidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/widget/CassandraWidgetsBundleDao.java index f4e7a727ce..3aa7bafdba 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/CassandraWidgetsBundleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/CassandraWidgetsBundleDao.java @@ -17,12 +17,12 @@ package org.thingsboard.server.dao.widget; import com.datastax.driver.core.querybuilder.Select; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.CassandraAbstractSearchTextDao; import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.annotation.NoSqlDao; import org.thingsboard.server.dao.model.nosql.WidgetsBundleEntity; import java.util.Arrays; @@ -34,7 +34,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.*; @Component @Slf4j -@ConditionalOnProperty(prefix = "cassandra", value = "enabled", havingValue = "true", matchIfMissing = false) +@NoSqlDao public class CassandraWidgetsBundleDao extends CassandraAbstractSearchTextDao implements WidgetsBundleDao { @Override diff --git a/dao/src/test/java/org/thingsboard/server/dao/JpaDbunitTestConfig.java b/dao/src/test/java/org/thingsboard/server/dao/JpaDbunitTestConfig.java index ad4145ab1d..3b925c399b 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/JpaDbunitTestConfig.java +++ b/dao/src/test/java/org/thingsboard/server/dao/JpaDbunitTestConfig.java @@ -20,9 +20,9 @@ import com.github.springtestdbunit.bean.DatabaseDataSourceConnectionFactoryBean; import org.dbunit.DatabaseUnitException; import org.dbunit.ext.postgresql.PostgresqlDataTypeFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.thingsboard.server.dao.annotation.SqlDao; import javax.sql.DataSource; import java.io.IOException; @@ -32,7 +32,7 @@ import java.sql.SQLException; * Created by Valerii Sosliuk on 5/6/2017. */ @Configuration -@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true") +@SqlDao public class JpaDbunitTestConfig { @Autowired