thingsboard-aplcache
Changes
application/pom.xml 4(+2 -2)
application/src/test/java/org/thingsboard/server/controller/BaseComponentDescriptorControllerTest.java 2(+1 -1)
application/src/test/java/org/thingsboard/server/controller/BaseCustomerControllerTest.java 2(+1 -1)
application/src/test/java/org/thingsboard/server/controller/BaseDashboardControllerTest.java 2(+1 -1)
application/src/test/java/org/thingsboard/server/controller/BaseWidgetsBundleControllerTest.java 2(+1 -1)
application/src/test/java/org/thingsboard/server/controller/BaseWidgetTypeControllerTest.java 2(+1 -1)
application/src/test/java/org/thingsboard/server/controller/nosql/AdminControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/AssetControllerNoSqlTest.java 27(+27 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/AuthControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/ComponentDescriptorControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/CustomerControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/DashboardControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/DeviceControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/PluginControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/RuleControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/TenantControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/UserControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/WidgetsBundleControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/nosql/WidgetTypeControllerNoSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/AdminControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/AssetControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/AuthControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/ComponentDescriptorControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/CustomerControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/DashboardControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/DeviceControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/PluginControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/RuleControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/TenantControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/UserControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/WidgetsBundleControllerSqlTest.java 26(+26 -0)
application/src/test/java/org/thingsboard/server/controller/sql/WidgetTypeControllerSqlTest.java 26(+26 -0)
dao/pom.xml 4(+2 -2)
dao/src/main/resources/sql/schema.sql 37(+18 -19)
pom.xml 7(+7 -0)
Details
application/pom.xml 4(+2 -2)
diff --git a/application/pom.xml b/application/pom.xml
index d57222e..7465109 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -258,8 +258,8 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>ru.yandex.qatools.embed</groupId>
- <artifactId>postgresql-embedded</artifactId>
+ <groupId>org.hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml
index 456f860..5d5dac1 100644
--- a/application/src/main/resources/thingsboard.yml
+++ b/application/src/main/resources/thingsboard.yml
@@ -106,7 +106,7 @@ coap:
timeout: "${COAP_TIMEOUT:10000}"
database:
- type: "${DATABASE_TYPE:cassandra}" # cassandra OR postgres
+ type: "${DATABASE_TYPE:cassandra}" # cassandra OR sql
# Cassandra driver configuration parameters
cassandra:
@@ -233,7 +233,6 @@ spring:
enabled: "true"
jpa:
show-sql: "false"
- generate-ddl: "true"
database-platform: "org.hibernate.dialect.PostgreSQLDialect"
hibernate:
ddl-auto: "validate"
diff --git a/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java
index 052b61a..8be6105 100644
--- a/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java
+++ b/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java
@@ -80,7 +80,6 @@ import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppC
@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = AbstractControllerTest.class, loader = SpringBootContextLoader.class)
-@TestPropertySource(locations = {"classpath:cassandra-test.properties", "classpath:application-test.properties", "classpath:nosql-test.properties"})
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
@Configuration
@ComponentScan({"org.thingsboard.server"})
diff --git a/application/src/test/java/org/thingsboard/server/controller/ControllerSqlTestSuite.java b/application/src/test/java/org/thingsboard/server/controller/ControllerSqlTestSuite.java
new file mode 100644
index 0000000..b969227
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/ControllerSqlTestSuite.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller;
+
+import org.junit.ClassRule;
+import org.junit.extensions.cpsuite.ClasspathSuite;
+import org.junit.runner.RunWith;
+import org.thingsboard.server.dao.CustomSqlUnit;
+
+import java.util.Arrays;
+
+@RunWith(ClasspathSuite.class)
+@ClasspathSuite.ClassnameFilters({
+ "org.thingsboard.server.controller.sql.*SqlTest",
+ })
+public class ControllerSqlTestSuite {
+
+ @ClassRule
+ public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
+ Arrays.asList("sql/schema.sql", "sql/system-data.sql"),
+ "sql/drop-all-tables.sql",
+ "sql-test.properties");
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/AdminControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/AdminControllerNoSqlTest.java
new file mode 100644
index 0000000..6ec28e7
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/AdminControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseAdminControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class AdminControllerNoSqlTest extends BaseAdminControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/AssetControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/AssetControllerNoSqlTest.java
new file mode 100644
index 0000000..a4bd152
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/AssetControllerNoSqlTest.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseAssetControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+import org.thingsboard.server.dao.util.NoSqlDao;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class AssetControllerNoSqlTest extends BaseAssetControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/AuthControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/AuthControllerNoSqlTest.java
new file mode 100644
index 0000000..4896d22
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/AuthControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseAuthControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class AuthControllerNoSqlTest extends BaseAuthControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/ComponentDescriptorControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/ComponentDescriptorControllerNoSqlTest.java
new file mode 100644
index 0000000..f3aa3e8
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/ComponentDescriptorControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseComponentDescriptorControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class ComponentDescriptorControllerNoSqlTest extends BaseComponentDescriptorControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/CustomerControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/CustomerControllerNoSqlTest.java
new file mode 100644
index 0000000..2fa3067
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/CustomerControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseCustomerControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class CustomerControllerNoSqlTest extends BaseCustomerControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/DashboardControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/DashboardControllerNoSqlTest.java
new file mode 100644
index 0000000..2a7af40
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/DashboardControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseDashboardControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class DashboardControllerNoSqlTest extends BaseDashboardControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/DeviceControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/DeviceControllerNoSqlTest.java
new file mode 100644
index 0000000..47f1c9e
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/DeviceControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseDeviceControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class DeviceControllerNoSqlTest extends BaseDeviceControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/PluginControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/PluginControllerNoSqlTest.java
new file mode 100644
index 0000000..c25eca1
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/PluginControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BasePluginControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class PluginControllerNoSqlTest extends BasePluginControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/RuleControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/RuleControllerNoSqlTest.java
new file mode 100644
index 0000000..3bf64fb
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/RuleControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseRuleControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class RuleControllerNoSqlTest extends BaseRuleControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/TenantControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/TenantControllerNoSqlTest.java
new file mode 100644
index 0000000..7cb34d3
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/TenantControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseTenantControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class TenantControllerNoSqlTest extends BaseTenantControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/UserControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/UserControllerNoSqlTest.java
new file mode 100644
index 0000000..6540347
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/UserControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseUserControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class UserControllerNoSqlTest extends BaseUserControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/WidgetsBundleControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/WidgetsBundleControllerNoSqlTest.java
new file mode 100644
index 0000000..02b4c07
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/WidgetsBundleControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseWidgetsBundleControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class WidgetsBundleControllerNoSqlTest extends BaseWidgetsBundleControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/nosql/WidgetTypeControllerNoSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/nosql/WidgetTypeControllerNoSqlTest.java
new file mode 100644
index 0000000..852f453
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/nosql/WidgetTypeControllerNoSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.nosql;
+
+import org.thingsboard.server.controller.BaseWidgetTypeControllerTest;
+import org.thingsboard.server.dao.service.DaoNoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoNoSqlTest
+public class WidgetTypeControllerNoSqlTest extends BaseWidgetTypeControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/AdminControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/AdminControllerSqlTest.java
new file mode 100644
index 0000000..2491c32
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/AdminControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseAdminControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class AdminControllerSqlTest extends BaseAdminControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/AssetControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/AssetControllerSqlTest.java
new file mode 100644
index 0000000..519cc38
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/AssetControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseAssetControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class AssetControllerSqlTest extends BaseAssetControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/AuthControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/AuthControllerSqlTest.java
new file mode 100644
index 0000000..cb2b1f0
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/AuthControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseAuthControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class AuthControllerSqlTest extends BaseAuthControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/ComponentDescriptorControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/ComponentDescriptorControllerSqlTest.java
new file mode 100644
index 0000000..d96b3dd
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/ComponentDescriptorControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseComponentDescriptorControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class ComponentDescriptorControllerSqlTest extends BaseComponentDescriptorControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/CustomerControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/CustomerControllerSqlTest.java
new file mode 100644
index 0000000..8d3ba49
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/CustomerControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseCustomerControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class CustomerControllerSqlTest extends BaseCustomerControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/DashboardControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/DashboardControllerSqlTest.java
new file mode 100644
index 0000000..7ce48c7
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/DashboardControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseDashboardControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class DashboardControllerSqlTest extends BaseDashboardControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/DeviceControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/DeviceControllerSqlTest.java
new file mode 100644
index 0000000..8505e64
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/DeviceControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseDeviceControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class DeviceControllerSqlTest extends BaseDeviceControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/PluginControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/PluginControllerSqlTest.java
new file mode 100644
index 0000000..3d750c5
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/PluginControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BasePluginControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class PluginControllerSqlTest extends BasePluginControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/RuleControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/RuleControllerSqlTest.java
new file mode 100644
index 0000000..d70d550
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/RuleControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseRuleControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class RuleControllerSqlTest extends BaseRuleControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/TenantControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/TenantControllerSqlTest.java
new file mode 100644
index 0000000..582dc61
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/TenantControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseTenantControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class TenantControllerSqlTest extends BaseTenantControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/UserControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/UserControllerSqlTest.java
new file mode 100644
index 0000000..9b7fc3b
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/UserControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseUserControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class UserControllerSqlTest extends BaseUserControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/WidgetsBundleControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/WidgetsBundleControllerSqlTest.java
new file mode 100644
index 0000000..7e2e481
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/WidgetsBundleControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseWidgetsBundleControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class WidgetsBundleControllerSqlTest extends BaseWidgetsBundleControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/controller/sql/WidgetTypeControllerSqlTest.java b/application/src/test/java/org/thingsboard/server/controller/sql/WidgetTypeControllerSqlTest.java
new file mode 100644
index 0000000..db0cd3a
--- /dev/null
+++ b/application/src/test/java/org/thingsboard/server/controller/sql/WidgetTypeControllerSqlTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright © 2016-2017 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.controller.sql;
+
+import org.thingsboard.server.controller.BaseWidgetTypeControllerTest;
+import org.thingsboard.server.dao.service.DaoSqlTest;
+
+/**
+ * Created by Valerii Sosliuk on 6/28/2017.
+ */
+@DaoSqlTest
+public class WidgetTypeControllerSqlTest extends BaseWidgetTypeControllerTest {
+}
diff --git a/application/src/test/java/org/thingsboard/server/system/sql/DeviceApiSqlTest.java b/application/src/test/java/org/thingsboard/server/system/sql/DeviceApiSqlTest.java
index bf53313..2343087 100644
--- a/application/src/test/java/org/thingsboard/server/system/sql/DeviceApiSqlTest.java
+++ b/application/src/test/java/org/thingsboard/server/system/sql/DeviceApiSqlTest.java
@@ -22,5 +22,5 @@ import org.thingsboard.server.system.BaseHttpDeviceApiTest;
* Created by Valerii Sosliuk on 6/27/2017.
*/
@DaoSqlTest
-public class DeviceApiSqlTest extends BaseHttpDeviceApiTest{
+public class DeviceApiSqlTest extends BaseHttpDeviceApiTest {
}
diff --git a/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java b/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java
index 726b205..21667a7 100644
--- a/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java
+++ b/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java
@@ -18,7 +18,7 @@ package org.thingsboard.server.system;
import org.junit.ClassRule;
import org.junit.extensions.cpsuite.ClasspathSuite;
import org.junit.runner.RunWith;
-import org.thingsboard.server.dao.CustomPostgresUnit;
+import org.thingsboard.server.dao.CustomSqlUnit;
import java.util.Arrays;
@@ -30,9 +30,10 @@ import java.util.Arrays;
public class SystemSqlTestSuite {
@ClassRule
- public static CustomPostgresUnit postgresUnit = new CustomPostgresUnit(
- Arrays.asList("postgres/schema.sql", "postgres/system-data.sql"),
- "postgres-embedded-test.properties");
+ public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
+ Arrays.asList("sql/schema.sql", "sql/system-data.sql"),
+ "sql/drop-all-tables.sql",
+ "sql-test.properties");
}
dao/pom.xml 4(+2 -2)
diff --git a/dao/pom.xml b/dao/pom.xml
index 2bb7751..ff4237c 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -170,8 +170,8 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>ru.yandex.qatools.embed</groupId>
- <artifactId>postgresql-embedded</artifactId>
+ <groupId>org.hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
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 5f902bf..79779e8 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
@@ -73,7 +73,6 @@ public class JpaAlarmDao extends JpaAbstractDao<AlarmEntity, Alarm> implements A
}
@Override
- @Transactional(propagation = REQUIRES_NEW)
public ListenableFuture<Alarm> findLatestByOriginatorAndType(TenantId tenantId, EntityId originator, String type) {
return service.submit(() -> {
List<AlarmEntity> latest = alarmRepository.findLatestByOriginatorAndType(
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 56eb5e8..feae4a6 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
@@ -80,7 +80,5 @@ public interface DeviceRepository extends CrudRepository<DeviceEntity, UUID> {
List<DeviceEntity> findDevicesByTenantIdAndCustomerIdAndIdIn(UUID tenantId, UUID customerId, List<UUID> deviceIds);
- List<DeviceEntity> findDevicesByTenantId(UUID tenantId);
-
List<DeviceEntity> findDevicesByTenantIdAndIdIn(UUID tenantId, List<UUID> deviceIds);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
index 8abab4a..2fd6c97 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
@@ -45,7 +45,7 @@ public abstract class JpaAbstractDao<E extends BaseEntity<D>, D>
protected void setSearchText(E entity) {}
@Override
- @Transactional(propagation = REQUIRES_NEW)
+ @Transactional
public D save(D domain) {
E entity;
try {
@@ -64,7 +64,6 @@ public abstract class JpaAbstractDao<E extends BaseEntity<D>, D>
}
@Override
- @Transactional(propagation = REQUIRES_NEW)
public D findById(UUID key) {
log.debug("Get entity by key {}", key);
E entity = getCrudRepository().findOne(key);
@@ -78,7 +77,7 @@ public abstract class JpaAbstractDao<E extends BaseEntity<D>, D>
}
@Override
- @Transactional(propagation = REQUIRES_NEW)
+ @Transactional
public boolean removeById(UUID key) {
getCrudRepository().delete(key);
log.debug("Remove request: {}", key);
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 e6a5c79..1c4122b 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
@@ -30,12 +30,12 @@ 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.util.SqlDao;
import org.thingsboard.server.dao.model.sql.RelationCompositeKey;
import org.thingsboard.server.dao.model.sql.RelationEntity;
import org.thingsboard.server.dao.relation.RelationDao;
import org.thingsboard.server.dao.sql.JpaAbstractDaoListeningExecutorService;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTimeDao;
+import org.thingsboard.server.dao.util.SqlDao;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
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 6abbbbd..2c2e636 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
@@ -17,11 +17,11 @@ package org.thingsboard.server.dao.sql.relation;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.CrudRepository;
-import org.thingsboard.server.dao.util.SqlDao;
+import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.dao.model.sql.RelationCompositeKey;
import org.thingsboard.server.dao.model.sql.RelationEntity;
+import org.thingsboard.server.dao.util.SqlDao;
-import javax.transaction.Transactional;
import java.util.List;
import java.util.UUID;
@@ -51,5 +51,5 @@ public interface RelationRepository
String fromType);
@Transactional
- List<RelationEntity> deleteByFromIdAndFromType(UUID fromId, String fromType);
+ void deleteByFromIdAndFromType(UUID fromId, String fromType);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/SqlDao.java b/dao/src/main/java/org/thingsboard/server/dao/util/SqlDao.java
index 88a107b..1ebc271 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/util/SqlDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/util/SqlDao.java
@@ -17,6 +17,6 @@ package org.thingsboard.server.dao.util;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-@ConditionalOnProperty(prefix = "database", value = "type", havingValue = "postgres")
+@ConditionalOnProperty(prefix = "database", value = "type", havingValue = "sql")
public @interface SqlDao {
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java b/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
index c74aeef..decd74b 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
@@ -24,13 +24,15 @@ import java.util.Arrays;
@RunWith(ClasspathSuite.class)
@ClassnameFilters({
- "org.thingsboard.server.dao.sql.*Test"
+ "org.thingsboard.server.dao.sql.*AASDTest"
})
public class JpaDaoTestSuite {
@ClassRule
- public static CustomPostgresUnit postgresUnit = new CustomPostgresUnit(
- Arrays.asList("postgres/schema.sql", "postgres/system-data.sql"),
- "postgres-embedded-test.properties");
+ public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
+ Arrays.asList("sql/schema.sql", "sql/system-data.sql"),
+ "sql/drop-all-tables.sql",
+ "sql-test.properties"
+ );
}
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 0a0f7d8..507eb4d 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/JpaDbunitTestConfig.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/JpaDbunitTestConfig.java
@@ -18,6 +18,7 @@ package org.thingsboard.server.dao;
import com.github.springtestdbunit.bean.DatabaseConfigBean;
import com.github.springtestdbunit.bean.DatabaseDataSourceConnectionFactoryBean;
import org.dbunit.DatabaseUnitException;
+import org.dbunit.ext.hsqldb.HsqldbDataTypeFactory;
import org.dbunit.ext.postgresql.PostgresqlDataTypeFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
@@ -41,7 +42,7 @@ public class JpaDbunitTestConfig {
@Bean
public DatabaseConfigBean databaseConfigBean() {
DatabaseConfigBean databaseConfigBean = new DatabaseConfigBean();
- databaseConfigBean.setDatatypeFactory(new PostgresqlDataTypeFactory());
+ databaseConfigBean.setDatatypeFactory(new HsqldbDataTypeFactory());
return databaseConfigBean;
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/SqlDaoServiceTestSuite.java b/dao/src/test/java/org/thingsboard/server/dao/SqlDaoServiceTestSuite.java
index 6ba4e7a..c0ae494 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/SqlDaoServiceTestSuite.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/SqlDaoServiceTestSuite.java
@@ -29,8 +29,10 @@ import java.util.Arrays;
public class SqlDaoServiceTestSuite {
@ClassRule
- public static CustomPostgresUnit postgresUnit = new CustomPostgresUnit(
- Arrays.asList("postgres/schema.sql", "postgres/system-data.sql", "postgres/system-test.sql"),
- "postgres-embedded-test.properties");
+ public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
+ Arrays.asList("sql/schema.sql", "sql/system-data.sql", "sql/system-test.sql"),
+ "sql/drop-all-tables.sql",
+ "sql-test.properties"
+ );
}
diff --git a/dao/src/test/resources/sql/drop-all-tables.sql b/dao/src/test/resources/sql/drop-all-tables.sql
new file mode 100644
index 0000000..610653d
--- /dev/null
+++ b/dao/src/test/resources/sql/drop-all-tables.sql
@@ -0,0 +1,20 @@
+TRUNCATE TABLE admin_settings;
+TRUNCATE TABLE alarm;
+TRUNCATE TABLE asset;
+TRUNCATE TABLE attribute_kv;
+TRUNCATE TABLE component_descriptor;
+TRUNCATE TABLE customer;
+TRUNCATE TABLE dashboard;
+TRUNCATE TABLE device;
+TRUNCATE TABLE device_credentials;
+TRUNCATE TABLE event;
+TRUNCATE TABLE plugin;
+TRUNCATE TABLE relation;
+TRUNCATE TABLE rule;
+TRUNCATE TABLE tb_user;
+TRUNCATE TABLE tenant;
+TRUNCATE TABLE ts_kv;
+TRUNCATE TABLE ts_kv_latest;
+TRUNCATE TABLE user_credentials;
+TRUNCATE TABLE widget_type;
+TRUNCATE TABLE widgets_bundle;
\ No newline at end of file
diff --git a/dao/src/test/resources/sql-test.properties b/dao/src/test/resources/sql-test.properties
index 93402cf..0bcc789 100644
--- a/dao/src/test/resources/sql-test.properties
+++ b/dao/src/test/resources/sql-test.properties
@@ -1,8 +1,10 @@
-database.type=postgres
+ database.type=sql
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=validate
+spring.jpa.database-platform=org.hibernate.dialect.HSQLDialect
-spring.datasource.url=jdbc:postgresql://localhost:5433/thingsboard-test
-spring.datasource.username=postgres
-spring.datasource.password=postgres
+spring.datasource.username=sa
+spring.datasource.password=
+spring.datasource.url=jdbc:hsqldb:file:/tmp/testDb;sql.enforce_size=false
+spring.datasource.driverClassName=org.hsqldb.jdbc.JDBCDriver
\ No newline at end of file
pom.xml 7(+7 -0)
diff --git a/pom.xml b/pom.xml
index 34c0dac..171dc60 100755
--- a/pom.xml
+++ b/pom.xml
@@ -73,6 +73,7 @@
<springfox-swagger.version>2.6.1</springfox-swagger.version>
<bouncycastle.version>1.56</bouncycastle.version>
<winsw.version>2.0.1</winsw.version>
+ <hsqldb.version>2.4.0</hsqldb.version>
<dbunit.version>2.5.3</dbunit.version>
<spring-test-dbunit.version>1.2.1</spring-test-dbunit.version>
<postgresql.driver.version>9.4.1211</postgresql.driver.version>
@@ -759,6 +760,12 @@
<version>${bouncycastle.version}</version>
</dependency>
<dependency>
+ <groupId>org.hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>${hsqldb.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>ru.yandex.qatools.embed</groupId>
<artifactId>postgresql-embedded</artifactId>
<version>2.2</version>