thingsboard-developers
Changes
application/pom.xml 96(+52 -44)
application/src/main/java/org/thingsboard/server/config/ThingsboardSecurityConfiguration.java 6(+4 -2)
common/data/pom.xml 4(+2 -2)
common/message/pom.xml 6(+3 -3)
common/pom.xml 4(+2 -2)
common/transport/pom.xml 8(+4 -4)
dao/pom.xml 6(+3 -3)
dao/src/main/resources/demo-data.cql 27(+27 -0)
docker/.env 1(+1 -0)
docker/deploy_cassandra_zookeeper.sh 4(+2 -2)
docker/docker-compose.yml 4(+1 -3)
docker/thingsboard/build_and_deploy.sh 25(+25 -0)
docker/thingsboard/Dockerfile 1(+1 -0)
extensions/extension-kafka/pom.xml 8(+4 -4)
extensions/pom.xml 4(+2 -2)
extensions-api/pom.xml 8(+4 -4)
extensions-core/pom.xml 6(+3 -3)
pom.xml 37(+24 -13)
tools/pom.xml 6(+3 -3)
transport/coap/pom.xml 6(+3 -3)
transport/http/pom.xml 6(+3 -3)
transport/mqtt/pom.xml 6(+3 -3)
transport/pom.xml 4(+2 -2)
ui/pom.xml 4(+2 -2)
Details
application/pom.xml 96(+52 -44)
diff --git a/application/pom.xml b/application/pom.xml
index 62c9f6a..3aff9fb 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -21,9 +21,9 @@
<parent>
<groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
- <artifactId>server</artifactId>
+ <artifactId>thingsboard</artifactId>
</parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>application</artifactId>
<packaging>jar</packaging>
@@ -47,35 +47,35 @@
<classifier>linux-x86_64</classifier>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-api</artifactId>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-core</artifactId>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>transport</artifactId>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.transport</groupId>
+ <groupId>org.thingsboard.transport</groupId>
<artifactId>http</artifactId>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.transport</groupId>
+ <groupId>org.thingsboard.transport</groupId>
<artifactId>coap</artifactId>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.transport</groupId>
+ <groupId>org.thingsboard.transport</groupId>
<artifactId>mqtt</artifactId>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>dao</artifactId>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>dao</artifactId>
<type>test-jar</type>
<scope>test</scope>
@@ -103,7 +103,7 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>ui</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
@@ -141,26 +141,6 @@
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework.security</groupId>
- <artifactId>spring-security-test</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.jayway.jsonpath</groupId>
- <artifactId>json-path</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.jayway.jsonpath</groupId>
- <artifactId>json-path-assert</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_${scala.version}</artifactId>
</dependency>
@@ -185,16 +165,6 @@
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-all</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</dependency>
@@ -219,11 +189,49 @@
<artifactId>grpc-stub</artifactId>
</dependency>
<dependency>
+ <groupId>io.springfox</groupId>
+ <artifactId>springfox-swagger-ui</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.springfox</groupId>
+ <artifactId>springfox-swagger2</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.thingsboard.server</groupId>
<artifactId>tools</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.security</groupId>
+ <artifactId>spring-security-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.jayway.jsonpath</groupId>
+ <artifactId>json-path</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.jayway.jsonpath</groupId>
+ <artifactId>json-path-assert</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
@@ -337,17 +345,17 @@
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
<artifactItems>
<artifactItem>
- <groupId>org.thingsboard.server.extensions</groupId>
+ <groupId>org.thingsboard.extensions</groupId>
<artifactId>extension-rabbitmq</artifactId>
<classifier>extension</classifier>
</artifactItem>
<artifactItem>
- <groupId>org.thingsboard.server.extensions</groupId>
+ <groupId>org.thingsboard.extensions</groupId>
<artifactId>extension-rest-api-call</artifactId>
<classifier>extension</classifier>
</artifactItem>
<artifactItem>
- <groupId>org.thingsboard.server.extensions</groupId>
+ <groupId>org.thingsboard.extensions</groupId>
<artifactId>extension-kafka</artifactId>
<classifier>extension</classifier>
</artifactItem>
diff --git a/application/src/main/java/org/thingsboard/server/config/SwaggerConfiguration.java b/application/src/main/java/org/thingsboard/server/config/SwaggerConfiguration.java
new file mode 100644
index 0000000..59e97b7
--- /dev/null
+++ b/application/src/main/java/org/thingsboard/server/config/SwaggerConfiguration.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright © 2016 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.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.thingsboard.server.common.data.security.Authority;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.service.*;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
+import springfox.documentation.spring.web.plugins.Docket;
+
+import java.util.List;
+
+import static com.google.common.collect.Lists.newArrayList;
+
+@Configuration
+public class SwaggerConfiguration {
+
+ @Bean
+ public Docket thingsboardApi() {
+ return new Docket(DocumentationType.SWAGGER_2)
+ .groupName("thingsboard")
+ .apiInfo(apiInfo())
+ .select()
+ .paths(PathSelectors.any())
+ .build()
+ .securitySchemes(newArrayList(jwtTokenKey()))
+ .securityContexts(newArrayList(securityContext()));
+ }
+
+ private ApiKey jwtTokenKey() {
+ return new ApiKey("X-Authorization", "JWT token", "header");
+ }
+
+ private SecurityContext securityContext() {
+ return SecurityContext.builder()
+ .securityReferences(defaultAuth())
+ .forPaths(PathSelectors.regex("/api.*"))
+ .build();
+ }
+
+ List<SecurityReference> defaultAuth() {
+ AuthorizationScope[] authorizationScopes = new AuthorizationScope[3];
+ authorizationScopes[0] = new AuthorizationScope(Authority.SYS_ADMIN.name(), "System administrator");
+ authorizationScopes[1] = new AuthorizationScope(Authority.TENANT_ADMIN.name(), "Tenant administrator");
+ authorizationScopes[2] = new AuthorizationScope(Authority.CUSTOMER_USER.name(), "Customer");
+ return newArrayList(
+ new SecurityReference("X-Authorization", authorizationScopes));
+ }
+
+ private ApiInfo apiInfo() {
+ return new ApiInfoBuilder()
+ .title("Thingsboard REST API")
+ .description("For instructions how to authorize requests please visit <a href='http://thingsboard.io/docs/rest-auth'>Documentation page</a>")
+ .contact(new Contact("Thingsboard team", "http://thingsboard.io", "info@thingsboard.io"))
+ .license("Apache License Version 2.0")
+ .licenseUrl("https://github.com/thingsboard/thingsboard/blob/master/LICENSE")
+ .version("2.0")
+ .build();
+ }
+
+}
diff --git a/application/src/main/java/org/thingsboard/server/config/ThingsboardSecurityConfiguration.java b/application/src/main/java/org/thingsboard/server/config/ThingsboardSecurityConfiguration.java
index ec6ca81..7ae4604 100644
--- a/application/src/main/java/org/thingsboard/server/config/ThingsboardSecurityConfiguration.java
+++ b/application/src/main/java/org/thingsboard/server/config/ThingsboardSecurityConfiguration.java
@@ -53,10 +53,11 @@ public class ThingsboardSecurityConfiguration extends WebSecurityConfigurerAdapt
public static final String JWT_TOKEN_HEADER_PARAM = "X-Authorization";
public static final String JWT_TOKEN_QUERY_PARAM = "token";
+ public static final String WEBJARS_ENTRY_POINT = "/webjars/**";
public static final String DEVICE_API_ENTRY_POINT = "/api/v1/**";
public static final String FORM_BASED_LOGIN_ENTRY_POINT = "/api/auth/login";
public static final String TOKEN_REFRESH_ENTRY_POINT = "/api/auth/token";
- public static final String[] NON_TOKEN_BASED_AUTH_ENTRY_POINTS = new String[] {"/index.html", "/static/**", "/api/noauth/**"};
+ public static final String[] NON_TOKEN_BASED_AUTH_ENTRY_POINTS = new String[] {"/index.html", "/static/**", "/api/noauth/**", "/webjars/**"};
public static final String TOKEN_BASED_AUTH_ENTRY_POINT = "/api/**";
public static final String WS_TOKEN_BASED_AUTH_ENTRY_POINT = "/api/ws/**";
@@ -89,7 +90,7 @@ public class ThingsboardSecurityConfiguration extends WebSecurityConfigurerAdapt
@Bean
protected JwtTokenAuthenticationProcessingFilter buildJwtTokenAuthenticationProcessingFilter() throws Exception {
List<String> pathsToSkip = new ArrayList(Arrays.asList(NON_TOKEN_BASED_AUTH_ENTRY_POINTS));
- pathsToSkip.addAll(Arrays.asList(WS_TOKEN_BASED_AUTH_ENTRY_POINT, TOKEN_REFRESH_ENTRY_POINT, FORM_BASED_LOGIN_ENTRY_POINT, DEVICE_API_ENTRY_POINT));
+ pathsToSkip.addAll(Arrays.asList(WS_TOKEN_BASED_AUTH_ENTRY_POINT, TOKEN_REFRESH_ENTRY_POINT, FORM_BASED_LOGIN_ENTRY_POINT, DEVICE_API_ENTRY_POINT, WEBJARS_ENTRY_POINT));
SkipPathRequestMatcher matcher = new SkipPathRequestMatcher(pathsToSkip, TOKEN_BASED_AUTH_ENTRY_POINT);
JwtTokenAuthenticationProcessingFilter filter
= new JwtTokenAuthenticationProcessingFilter(failureHandler, jwtHeaderTokenExtractor, matcher);
@@ -142,6 +143,7 @@ public class ThingsboardSecurityConfiguration extends WebSecurityConfigurerAdapt
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
+ .antMatchers(WEBJARS_ENTRY_POINT).permitAll() // Webjars
.antMatchers(DEVICE_API_ENTRY_POINT).permitAll() // Device HTTP Transport API
.antMatchers(FORM_BASED_LOGIN_ENTRY_POINT).permitAll() // Login end-point
.antMatchers(TOKEN_REFRESH_ENTRY_POINT).permitAll() // Token refresh end-point
diff --git a/application/src/main/java/org/thingsboard/server/config/WebConfig.java b/application/src/main/java/org/thingsboard/server/config/WebConfig.java
index 3a2234a..02d8cfc 100644
--- a/application/src/main/java/org/thingsboard/server/config/WebConfig.java
+++ b/application/src/main/java/org/thingsboard/server/config/WebConfig.java
@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class WebConfig {
- @RequestMapping(value = "/{path:^(?!api$)(?!static$)[^\\.]*}/**")
+ @RequestMapping(value = "/{path:^(?!api$)(?!static$)(?!webjars$)[^\\.]*}/**")
public String redirect() {
return "forward:/index.html";
}
diff --git a/application/src/main/java/org/thingsboard/server/controller/AdminController.java b/application/src/main/java/org/thingsboard/server/controller/AdminController.java
index cace783..e97885d 100644
--- a/application/src/main/java/org/thingsboard/server/controller/AdminController.java
+++ b/application/src/main/java/org/thingsboard/server/controller/AdminController.java
@@ -15,6 +15,7 @@
*/
package org.thingsboard.server.controller;
+import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -45,6 +46,18 @@ public class AdminController extends BaseController {
}
@PreAuthorize("hasAuthority('SYS_ADMIN')")
+ @ApiOperation(
+ value = "Save admin settings", notes = "Saves admin settings",
+ response = AdminSettings.class,
+ authorizations = {
+ @Authorization(value = "X-Authorization", scopes = {
+ @AuthorizationScope(scope = "SYS_ADMIN", description = "")
+ })})
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, response = AdminSettings.class, message = "Admin settings successfully updated"),
+ @ApiResponse(code = 400, message = "Invalid admin settings payload supplied"),
+ @ApiResponse(code = 404, message = "Admin settings not found")}
+ )
@RequestMapping(value = "/settings", method = RequestMethod.POST)
@ResponseBody
public AdminSettings saveAdminSettings(@RequestBody AdminSettings adminSettings) throws ThingsboardException {
diff --git a/application/src/main/java/org/thingsboard/server/controller/RuleController.java b/application/src/main/java/org/thingsboard/server/controller/RuleController.java
index 3c04619..a21f5dc 100644
--- a/application/src/main/java/org/thingsboard/server/controller/RuleController.java
+++ b/application/src/main/java/org/thingsboard/server/controller/RuleController.java
@@ -15,6 +15,9 @@
*/
package org.thingsboard.server.controller;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
import org.springframework.http.HttpStatus;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -34,6 +37,12 @@ import java.util.List;
@RequestMapping("/api")
public class RuleController extends BaseController {
+ @ApiOperation(value = "getRuleById", nickname = "Get Rule By ID")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Success", response = RuleMetaData.class),
+ @ApiResponse(code = 401, message = "Unauthorized"),
+ @ApiResponse(code = 403, message = "Forbidden"),
+ @ApiResponse(code = 404, message = "Not Found")})
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
@RequestMapping(value = "/rule/{ruleId}", method = RequestMethod.GET)
@ResponseBody
diff --git a/application/src/main/java/org/thingsboard/server/ThingsboardServerApplication.java b/application/src/main/java/org/thingsboard/server/ThingsboardServerApplication.java
index f082824..9f1bce3 100644
--- a/application/src/main/java/org/thingsboard/server/ThingsboardServerApplication.java
+++ b/application/src/main/java/org/thingsboard/server/ThingsboardServerApplication.java
@@ -19,11 +19,13 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.Arrays;
@EnableAutoConfiguration
@SpringBootApplication
+@EnableSwagger2
@ComponentScan({"org.thingsboard.server"})
public class ThingsboardServerApplication {
common/data/pom.xml 4(+2 -2)
diff --git a/common/data/pom.xml b/common/data/pom.xml
index b458ef1..08de1a4 100644
--- a/common/data/pom.xml
+++ b/common/data/pom.xml
@@ -19,11 +19,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>common</artifactId>
</parent>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>data</artifactId>
<packaging>jar</packaging>
common/message/pom.xml 6(+3 -3)
diff --git a/common/message/pom.xml b/common/message/pom.xml
index be14928..5d433d1 100644
--- a/common/message/pom.xml
+++ b/common/message/pom.xml
@@ -19,11 +19,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>common</artifactId>
</parent>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>message</artifactId>
<packaging>jar</packaging>
@@ -37,7 +37,7 @@
<dependencies>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>data</artifactId>
</dependency>
<dependency>
common/pom.xml 4(+2 -2)
diff --git a/common/pom.xml b/common/pom.xml
index 97ff8ab..7a21a46 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -21,9 +21,9 @@
<parent>
<groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
- <artifactId>server</artifactId>
+ <artifactId>thingsboard</artifactId>
</parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>common</artifactId>
<packaging>pom</packaging>
common/transport/pom.xml 8(+4 -4)
diff --git a/common/transport/pom.xml b/common/transport/pom.xml
index e57d3d7..198d1e7 100644
--- a/common/transport/pom.xml
+++ b/common/transport/pom.xml
@@ -19,11 +19,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>common</artifactId>
</parent>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>transport</artifactId>
<packaging>jar</packaging>
@@ -37,11 +37,11 @@
<dependencies>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>data</artifactId>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>message</artifactId>
</dependency>
<dependency>
dao/pom.xml 6(+3 -3)
diff --git a/dao/pom.xml b/dao/pom.xml
index f9f0d56..2a2aa83 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -21,9 +21,9 @@
<parent>
<groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
- <artifactId>server</artifactId>
+ <artifactId>thingsboard</artifactId>
</parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>dao</artifactId>
<packaging>jar</packaging>
@@ -37,7 +37,7 @@
<dependencies>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>data</artifactId>
</dependency>
<dependency>
dao/src/main/resources/demo-data.cql 27(+27 -0)
diff --git a/dao/src/main/resources/demo-data.cql b/dao/src/main/resources/demo-data.cql
index e879274..5ce642f 100644
--- a/dao/src/main/resources/demo-data.cql
+++ b/dao/src/main/resources/demo-data.cql
@@ -204,6 +204,15 @@ VALUES (
'{"description":"Demo device that is used in sample applications that upload data from DHT11 temperature and humidity sensor"}'
);
+INSERT INTO thingsboard.device ( id, tenant_id, customer_id, name, search_text, additional_info)
+VALUES (
+ c8f1a6f0-b993-11e6-8a04-9ff4e1b7933d,
+ minTimeuuid ( '2016-11-01 01:02:01+0000' ),
+ minTimeuuid ( 0 ),
+ 'Raspberry Pi Demo Device',
+ 'raspberry pi demo device',
+ '{"description":"Demo device that is used in Raspberry Pi GPIO control sample application"}'
+);
INSERT INTO thingsboard.device_credentials ( id, device_id, credentials_type, credentials_id)
VALUES (
@@ -253,6 +262,14 @@ VALUES (
'DHT11_DEMO_TOKEN'
);
+INSERT INTO thingsboard.device_credentials ( id, device_id, credentials_type, credentials_id)
+VALUES (
+ now(),
+ c8f1a6f0-b993-11e6-8a04-9ff4e1b7933d,
+ 'ACCESS_TOKEN',
+ 'RASPBERRY_PI_DEMO_TOKEN'
+);
+
/** Demo data **/
/** Demo plugins & rules **/
@@ -430,4 +447,14 @@ VALUES (
'{"description":"Demo dashboard for sample applications that upload temperature and humidity received from DHT11 or DHT22 sensors","widgets":[{"isSystemType":true,"bundleAlias":"digital_gauges","typeAlias":"digital_thermometer","type":"latest","title":"New widget","sizeX":5,"sizeY":5,"config":{"datasources":[{"type":"device","dataKeys":[{"name":"temperature","type":"timeseries","label":"temperature","color":"#2196f3","settings":{},"_hash":0.3720839051412099}],"deviceAliasId":1,"name":"DHT11"}],"timewindow":{"realtime":{"timewindowMs":60000}},"showTitle":false,"backgroundColor":"#000000","color":"rgba(0, 0, 0, 0.87)","padding":"0px","settings":{"maxValue":50,"donutStartAngle":90,"showValue":true,"showMinMax":true,"gaugeWidthScale":1,"levelColors":["#304ffe","#7e57c2","#ff4081","#d32f2f"],"refreshAnimationType":"<>","refreshAnimationTime":700,"startAnimationType":"<>","startAnimationTime":700,"titleFont":{"family":"RobotoDraft","size":12,"style":"normal","weight":"500"},"labelFont":{"family":"RobotoDraft","size":8,"style":"normal","weight":"500"},"valueFont":{"family":"Segment7Standard","style":"normal","weight":"500","size":18},"minMaxFont":{"family":"Segment7Standard","size":12,"style":"normal","weight":"500"},"dashThickness":1.5,"decimals":0,"minValue":0,"units":"°C","gaugeColor":"#333333","neonGlowBrightness":35,"gaugeType":"donut","showTitle":false},"title":"Temperature"},"row":0,"col":0},{"isSystemType":true,"bundleAlias":"digital_gauges","typeAlias":"digital_vertical_bar","type":"latest","title":"New widget","sizeX":3,"sizeY":5,"config":{"datasources":[{"type":"device","dataKeys":[{"name":"humidity","type":"timeseries","label":"humidity","color":"#2196f3","settings":{},"_hash":0.9492802776509441}],"deviceAliasId":"1","name":"DHT11"}],"timewindow":{"realtime":{"timewindowMs":60000}},"showTitle":false,"backgroundColor":"#000000","color":"rgba(0, 0, 0, 0.87)","padding":"0px","settings":{"maxValue":100,"donutStartAngle":90,"showValue":true,"showMinMax":true,"gaugeWidthScale":0.75,"levelColors":["#3d5afe","#f44336"],"refreshAnimationType":"<>","refreshAnimationTime":700,"startAnimationType":"<>","startAnimationTime":700,"titleFont":{"family":"RobotoDraft","size":12,"style":"normal","weight":"500"},"labelFont":{"family":"RobotoDraft","size":8,"style":"normal","weight":"500"},"valueFont":{"family":"Segment7Standard","style":"normal","weight":"500","size":14},"minMaxFont":{"family":"Segment7Standard","size":8,"style":"normal","weight":"normal","color":"#cccccc"},"neonGlowBrightness":20,"decimals":0,"showUnitTitle":true,"gaugeColor":"#171a1c","gaugeType":"verticalBar","showTitle":false,"minValue":0,"dashThickness":1.2},"title":"Humidity"},"row":0,"col":5}],"deviceAliases":{"1":{"alias":"DHT11","deviceId":"c8f1a6f0-b993-11e6-8a04-9ff4e1b7933c"}}}',
'Temperature & Humidity Demo Dashboard',
'temperature & humidity demo dashboard'
+);
+
+INSERT INTO thingsboard.dashboard ( id, tenant_id, customer_id, configuration, title, search_text)
+VALUES (
+ now(),
+ minTimeuuid ( '2016-11-01 01:02:01+0000' ),
+ minTimeuuid ( 0 ),
+ '{"description":"Demo dashboard for Raspberry PI GPIO Demo","widgets":[{"isSystemType":true,"bundleAlias":"gpio_widgets","typeAlias":"raspberry_pi_gpio_control","type":"rpc","title":"New widget","sizeX":6,"sizeY":10,"config":{"targetDeviceAliases":[],"showTitle":true,"backgroundColor":"#fff","color":"rgba(0, 0, 0, 0.87)","padding":"0px","settings":{"parseGpioStatusFunction":"return body[pin] === true;","gpioStatusChangeRequest":{"method":"setGpioStatus","paramsBody":"{\n \"pin\": \"{$pin}\",\n \"enabled\": \"{$enabled}\"\n}"},"requestTimeout":500,"switchPanelBackgroundColor":"#008a00","gpioStatusRequest":{"method":"getGpioStatus","paramsBody":"{}"},"gpioList":[{"pin":7,"label":"GPIO 4 (GPCLK0)","row":3,"col":0,"_uniqueKey":0},{"pin":11,"label":"GPIO 17","row":5,"col":0,"_uniqueKey":1},{"pin":12,"label":"GPIO 18","row":5,"col":1,"_uniqueKey":2},{"_uniqueKey":3,"pin":13,"label":"GPIO 27","row":6,"col":0},{"_uniqueKey":4,"pin":15,"label":"GPIO 22","row":7,"col":0},{"_uniqueKey":5,"pin":16,"label":"GPIO 23","row":7,"col":1},{"_uniqueKey":6,"pin":18,"label":"GPIO 24","row":8,"col":1},{"_uniqueKey":7,"pin":22,"label":"GPIO 25","row":10,"col":1},{"_uniqueKey":8,"pin":29,"label":"GPIO 5","row":14,"col":0},{"_uniqueKey":9,"pin":31,"label":"GPIO 6","row":15,"col":0},{"_uniqueKey":10,"pin":32,"label":"GPIO 12","row":15,"col":1},{"_uniqueKey":11,"pin":33,"label":"GPIO 13","row":16,"col":0},{"_uniqueKey":12,"pin":35,"label":"GPIO 19","row":17,"col":0},{"_uniqueKey":13,"pin":36,"label":"GPIO 16","row":17,"col":1},{"_uniqueKey":14,"pin":37,"label":"GPIO 26","row":18,"col":0},{"_uniqueKey":15,"pin":38,"label":"GPIO 20","row":18,"col":1},{"_uniqueKey":16,"pin":40,"label":"GPIO 21","row":19,"col":1}]},"title":"Raspberry Pi GPIO Control Panel","datasources":[],"targetDeviceAliasIds":["1"]},"row":0,"col":0},{"isSystemType":true,"bundleAlias":"gpio_widgets","typeAlias":"raspberry_pi_gpio_panel","type":"latest","title":"New widget","sizeX":7,"sizeY":10,"config":{"showTitle":true,"backgroundColor":"#fff","color":"rgba(0, 0, 0, 0.87)","padding":"0px","settings":{"gpioList":[{"pin":1,"label":"3.3V","row":0,"col":0,"color":"#fc9700","_uniqueKey":0},{"pin":2,"label":"5V","row":0,"col":1,"color":"#fb0000","_uniqueKey":1},{"pin":3,"label":"GPIO 2 (I2C1_SDA)","row":1,"col":0,"color":"#02fefb","_uniqueKey":2},{"color":"#fb0000","pin":4,"label":"5V","row":1,"col":1},{"color":"#02fefb","pin":5,"label":"GPIO 3 (I2C1_SCL)","row":2,"col":0},{"color":"#000000","pin":6,"label":"GND","row":2,"col":1},{"color":"#00fd00","pin":7,"label":"GPIO 4 (GPCLK0)","row":3,"col":0},{"color":"#fdfb00","pin":8,"label":"GPIO 14 (UART_TXD)","row":3,"col":1},{"color":"#000000","pin":9,"label":"GND","row":4,"col":0},{"color":"#fdfb00","pin":10,"label":"GPIO 15 (UART_RXD)","row":4,"col":1},{"color":"#00fd00","pin":11,"label":"GPIO 17","row":5,"col":0},{"color":"#00fd00","pin":12,"label":"GPIO 18","row":5,"col":1},{"color":"#00fd00","pin":13,"label":"GPIO 27","row":6,"col":0},{"color":"#000000","pin":14,"label":"GND","row":6,"col":1},{"color":"#00fd00","pin":15,"label":"GPIO 22","row":7,"col":0},{"color":"#00fd00","pin":16,"label":"GPIO 23","row":7,"col":1},{"color":"#fc9700","pin":17,"label":"3.3V","row":8,"col":0},{"color":"#00fd00","pin":18,"label":"GPIO 24","row":8,"col":1},{"color":"#fd01fd","pin":19,"label":"GPIO 10 (SPI_MOSI)","row":9,"col":0},{"color":"#000000","pin":20,"label":"GND","row":9,"col":1},{"color":"#fd01fd","pin":21,"label":"GPIO 9 (SPI_MISO)","row":10,"col":0},{"color":"#00fd00","pin":22,"label":"GPIO 25","row":10,"col":1},{"color":"#fd01fd","pin":23,"label":"GPIO 11 (SPI_SCLK)","row":11,"col":0},{"color":"#fd01fd","pin":24,"label":"GPIO 8 (SPI_CE0)","row":11,"col":1},{"color":"#000000","pin":25,"label":"GND","row":12,"col":0},{"color":"#fd01fd","pin":26,"label":"GPIO 7 (SPI_CE1)","row":12,"col":1},{"color":"#ffffff","pin":27,"label":"ID_SD","row":13,"col":0},{"color":"#ffffff","pin":28,"label":"ID_SC","row":13,"col":1},{"color":"#00fd00","pin":29,"label":"GPIO 5","row":14,"col":0},{"color":"#000000","pin":30,"label":"GND","row":14,"col":1},{"color":"#00fd00","pin":31,"label":"GPIO 6","row":15,"col":0},{"color":"#00fd00","pin":32,"label":"GPIO 12","row":15,"col":1},{"color":"#00fd00","pin":33,"label":"GPIO 13","row":16,"col":0},{"color":"#000000","pin":34,"label":"GND","row":16,"col":1},{"color":"#00fd00","pin":35,"label":"GPIO 19","row":17,"col":0},{"color":"#00fd00","pin":36,"label":"GPIO 16","row":17,"col":1},{"color":"#00fd00","pin":37,"label":"GPIO 26","row":18,"col":0},{"color":"#00fd00","pin":38,"label":"GPIO 20","row":18,"col":1},{"color":"#000000","pin":39,"label":"GND","row":19,"col":0},{"color":"#00fd00","pin":40,"label":"GPIO 21","row":19,"col":1}],"ledPanelBackgroundColor":"#008a00"},"title":"Raspberry Pi GPIO Status Panel","datasources":[{"type":"device","dataKeys":[{"name":"7","type":"attribute","label":"7","color":"#2196f3","settings":{},"_hash":0.20925966435886978},{"name":"11","type":"attribute","label":"11","color":"#4caf50","settings":{},"_hash":0.330267349594344},{"name":"12","type":"attribute","label":"12","color":"#f44336","settings":{},"_hash":0.5040578704481748},{"name":"13","type":"attribute","label":"13","color":"#ffc107","settings":{},"_hash":0.588956328191639},{"name":"15","type":"attribute","label":"15","color":"#607d8b","settings":{},"_hash":0.9229040530336119},{"name":"16","type":"attribute","label":"16","color":"#9c27b0","settings":{},"_hash":0.8692315253041654},{"name":"18","type":"attribute","label":"18","color":"#8bc34a","settings":{},"_hash":0.41465562857521543},{"name":"22","type":"attribute","label":"22","color":"#3f51b5","settings":{},"_hash":0.36135260043112827},{"name":"29","type":"attribute","label":"29","color":"#e91e63","settings":{},"_hash":0.9904592276182183},{"name":"31","type":"attribute","label":"31","color":"#ffeb3b","settings":{},"_hash":0.038330985429919195},{"name":"32","type":"attribute","label":"32","color":"#03a9f4","settings":{},"_hash":0.4334683890135089},{"name":"33","type":"attribute","label":"33","color":"#ff9800","settings":{},"_hash":0.6487255992492305},{"name":"35","type":"attribute","label":"35","color":"#673ab7","settings":{},"_hash":0.971555321150732},{"name":"36","type":"attribute","label":"36","color":"#cddc39","settings":{},"_hash":0.7826129728424382},{"name":"37","type":"attribute","label":"37","color":"#009688","settings":{},"_hash":0.44925676517537627},{"name":"38","type":"attribute","label":"38","color":"#795548","settings":{},"_hash":0.051518155759787465},{"name":"40","type":"attribute","label":"40","color":"#00bcd4","settings":{},"_hash":0.8733296686871144}],"deviceAliasId":1,"name":"RPi"}],"timewindow":{"realtime":{"timewindowMs":60000}}},"row":0,"col":6}],"deviceAliases":{"1":{"alias":"RPi","deviceId":"c8f1a6f0-b993-11e6-8a04-9ff4e1b7933d"}}}',
+ 'Raspberry PI GPIO Demo Dashboard',
+ 'raspberry pi gpio demo dashboard'
);
\ No newline at end of file
docker/.env 1(+1 -0)
diff --git a/docker/.env b/docker/.env
new file mode 100644
index 0000000..ca7f2b0
--- /dev/null
+++ b/docker/.env
@@ -0,0 +1 @@
+CASSANDRA_DATA_DIR=/home/docker/cassandra_volume
docker/deploy_cassandra_zookeeper.sh 4(+2 -2)
diff --git a/docker/deploy_cassandra_zookeeper.sh b/docker/deploy_cassandra_zookeeper.sh
index 6c4cc50..263ef49 100755
--- a/docker/deploy_cassandra_zookeeper.sh
+++ b/docker/deploy_cassandra_zookeeper.sh
@@ -27,5 +27,5 @@ $command rm -f
echo "building images.."
$command build
-echo "starting cassandra, zookeeper, db-schema images..."
-$command up -d cassandra zookeeper db-schema
+echo "starting cassandra, zookeeper, thingsboard-db-schema images..."
+$command up -d cassandra zookeeper thingsboard-db-schema
docker/docker-compose.yml 4(+1 -3)
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 65b0aa7..fd1c0a1 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -18,7 +18,7 @@ version: '2'
services:
thingsboard:
- build: thingsboard
+ image: "thingsboard/application:0.1"
ports:
- "8080:8080"
- "1883:1883"
@@ -27,8 +27,6 @@ services:
- cassandra:db
- zookeeper:zk
- thingsboard-db-schema:thingsboard-db-schema
- volumes:
- - "../application/target/thingsboard.deb:/root/thingsboard.deb"
env_file:
- thingsboard.env
entrypoint: ./run_thingsboard.sh
docker/thingsboard/build_and_deploy.sh 25(+25 -0)
diff --git a/docker/thingsboard/build_and_deploy.sh b/docker/thingsboard/build_and_deploy.sh
new file mode 100755
index 0000000..937ac4b
--- /dev/null
+++ b/docker/thingsboard/build_and_deploy.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# Copyright © 2016 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.
+#
+
+
+cp ../../application/target/thingsboard.deb thingsboard.deb
+
+docker build -t thingsboard/application:0.1 .
+
+docker login
+
+docker push thingsboard/application:0.1
\ No newline at end of file
docker/thingsboard/Dockerfile 1(+1 -0)
diff --git a/docker/thingsboard/Dockerfile b/docker/thingsboard/Dockerfile
index c145939..1587d79 100644
--- a/docker/thingsboard/Dockerfile
+++ b/docker/thingsboard/Dockerfile
@@ -17,6 +17,7 @@
FROM openjdk:8-jre
ADD run_thingsboard.sh /root/run_thingsboard.sh
+ADD thingsboard.deb /root/thingsboard.deb
RUN chmod +x /root/run_thingsboard.sh
extensions/extension-kafka/pom.xml 8(+4 -4)
diff --git a/extensions/extension-kafka/pom.xml b/extensions/extension-kafka/pom.xml
index 23a5e4b..27132c2 100644
--- a/extensions/extension-kafka/pom.xml
+++ b/extensions/extension-kafka/pom.xml
@@ -21,11 +21,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>extensions</artifactId>
</parent>
- <groupId>org.thingsboard.server.extensions</groupId>
+ <groupId>org.thingsboard.extensions</groupId>
<artifactId>extension-kafka</artifactId>
<packaging>jar</packaging>
@@ -49,12 +49,12 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-core</artifactId>
<scope>provided</scope>
</dependency>
diff --git a/extensions/extension-rabbitmq/pom.xml b/extensions/extension-rabbitmq/pom.xml
index f2456c5..4f8ea38 100644
--- a/extensions/extension-rabbitmq/pom.xml
+++ b/extensions/extension-rabbitmq/pom.xml
@@ -19,11 +19,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>extensions</artifactId>
</parent>
- <groupId>org.thingsboard.server.extensions</groupId>
+ <groupId>org.thingsboard.extensions</groupId>
<artifactId>extension-rabbitmq</artifactId>
<packaging>jar</packaging>
@@ -41,12 +41,12 @@
<artifactId>amqp-client</artifactId>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-core</artifactId>
<scope>provided</scope>
</dependency>
diff --git a/extensions/extension-rest-api-call/pom.xml b/extensions/extension-rest-api-call/pom.xml
index 175d736..0214197 100644
--- a/extensions/extension-rest-api-call/pom.xml
+++ b/extensions/extension-rest-api-call/pom.xml
@@ -21,11 +21,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>extensions</artifactId>
</parent>
- <groupId>org.thingsboard.server.extensions</groupId>
+ <groupId>org.thingsboard.extensions</groupId>
<artifactId>extension-rest-api-call</artifactId>
<packaging>jar</packaging>
@@ -49,7 +49,7 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-api</artifactId>
<scope>provided</scope>
</dependency>
@@ -59,7 +59,7 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-core</artifactId>
<scope>provided</scope>
</dependency>
extensions/pom.xml 4(+2 -2)
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 8609ea7..1fcc5d9 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -21,9 +21,9 @@
<parent>
<groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
- <artifactId>server</artifactId>
+ <artifactId>thingsboard</artifactId>
</parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions</artifactId>
<packaging>pom</packaging>
extensions-api/pom.xml 8(+4 -4)
diff --git a/extensions-api/pom.xml b/extensions-api/pom.xml
index 4af3de3..c8b9ede 100644
--- a/extensions-api/pom.xml
+++ b/extensions-api/pom.xml
@@ -21,9 +21,9 @@
<parent>
<groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
- <artifactId>server</artifactId>
+ <artifactId>thingsboard</artifactId>
</parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-api</artifactId>
<packaging>jar</packaging>
@@ -37,11 +37,11 @@
<dependencies>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>data</artifactId>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>message</artifactId>
</dependency>
<dependency>
extensions-core/pom.xml 6(+3 -3)
diff --git a/extensions-core/pom.xml b/extensions-core/pom.xml
index b2e2d18..61b2833 100644
--- a/extensions-core/pom.xml
+++ b/extensions-core/pom.xml
@@ -21,9 +21,9 @@
<parent>
<groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
- <artifactId>server</artifactId>
+ <artifactId>thingsboard</artifactId>
</parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-core</artifactId>
<packaging>jar</packaging>
@@ -37,7 +37,7 @@
<dependencies>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-api</artifactId>
<scope>provided</scope>
</dependency>
pom.xml 37(+24 -13)
diff --git a/pom.xml b/pom.xml
index 488de00..bd1faae 100755
--- a/pom.xml
+++ b/pom.xml
@@ -68,6 +68,7 @@
<hazelcast-zookeeper.version>3.6.1</hazelcast-zookeeper.version>
<surfire.version>2.19.1</surfire.version>
<jar-plugin.version>3.0.2</jar-plugin.version>
+ <springfox-swagger.version>2.6.1</springfox-swagger.version>
</properties>
<modules>
@@ -301,70 +302,70 @@
<dependencyManagement>
<dependencies>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>extensions-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.extensions</groupId>
+ <groupId>org.thingsboard.extensions</groupId>
<artifactId>extension-rabbitmq</artifactId>
<classifier>extension</classifier>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.extensions</groupId>
+ <groupId>org.thingsboard.extensions</groupId>
<artifactId>extension-rest-api-call</artifactId>
<classifier>extension</classifier>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.extensions</groupId>
+ <groupId>org.thingsboard.extensions</groupId>
<artifactId>extension-kafka</artifactId>
<classifier>extension</classifier>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>data</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>message</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>transport</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.transport</groupId>
+ <groupId>org.thingsboard.transport</groupId>
<artifactId>http</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.transport</groupId>
+ <groupId>org.thingsboard.transport</groupId>
<artifactId>coap</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server.transport</groupId>
+ <groupId>org.thingsboard.transport</groupId>
<artifactId>mqtt</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>dao</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>dao</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
@@ -672,6 +673,16 @@
<artifactId>hazelcast</artifactId>
<version>${hazelcast.version}</version>
</dependency>
+ <dependency>
+ <groupId>io.springfox</groupId>
+ <artifactId>springfox-swagger-ui</artifactId>
+ <version>${springfox-swagger.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.springfox</groupId>
+ <artifactId>springfox-swagger2</artifactId>
+ <version>${springfox-swagger.version}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
tools/pom.xml 6(+3 -3)
diff --git a/tools/pom.xml b/tools/pom.xml
index f022ac5..0eb68df 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -21,9 +21,9 @@
<parent>
<groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
- <artifactId>server</artifactId>
+ <artifactId>thingsboard</artifactId>
</parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>tools</artifactId>
<packaging>jar</packaging>
@@ -37,7 +37,7 @@
<dependencies>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>data</artifactId>
</dependency>
<dependency>
transport/coap/pom.xml 6(+3 -3)
diff --git a/transport/coap/pom.xml b/transport/coap/pom.xml
index 6ddf64b..6634165 100644
--- a/transport/coap/pom.xml
+++ b/transport/coap/pom.xml
@@ -19,11 +19,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>transport</artifactId>
</parent>
- <groupId>org.thingsboard.server.transport</groupId>
+ <groupId>org.thingsboard.transport</groupId>
<artifactId>coap</artifactId>
<packaging>jar</packaging>
@@ -37,7 +37,7 @@
<dependencies>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>transport</artifactId>
</dependency>
<dependency>
transport/http/pom.xml 6(+3 -3)
diff --git a/transport/http/pom.xml b/transport/http/pom.xml
index 665a152..a13d26f 100644
--- a/transport/http/pom.xml
+++ b/transport/http/pom.xml
@@ -19,11 +19,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>transport</artifactId>
</parent>
- <groupId>org.thingsboard.server.transport</groupId>
+ <groupId>org.thingsboard.transport</groupId>
<artifactId>http</artifactId>
<packaging>jar</packaging>
@@ -37,7 +37,7 @@
<dependencies>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>transport</artifactId>
</dependency>
<dependency>
transport/mqtt/pom.xml 6(+3 -3)
diff --git a/transport/mqtt/pom.xml b/transport/mqtt/pom.xml
index 045bb1f..3941544 100644
--- a/transport/mqtt/pom.xml
+++ b/transport/mqtt/pom.xml
@@ -19,11 +19,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>transport</artifactId>
</parent>
- <groupId>org.thingsboard.server.transport</groupId>
+ <groupId>org.thingsboard.transport</groupId>
<artifactId>mqtt</artifactId>
<packaging>jar</packaging>
@@ -37,7 +37,7 @@
<dependencies>
<dependency>
- <groupId>org.thingsboard.server.common</groupId>
+ <groupId>org.thingsboard.common</groupId>
<artifactId>transport</artifactId>
</dependency>
<dependency>
transport/pom.xml 4(+2 -2)
diff --git a/transport/pom.xml b/transport/pom.xml
index 4675cdf..328ab6d 100644
--- a/transport/pom.xml
+++ b/transport/pom.xml
@@ -21,9 +21,9 @@
<parent>
<groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
- <artifactId>server</artifactId>
+ <artifactId>thingsboard</artifactId>
</parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>transport</artifactId>
<packaging>pom</packaging>
ui/pom.xml 4(+2 -2)
diff --git a/ui/pom.xml b/ui/pom.xml
index c9e4c68..e7911ff 100644
--- a/ui/pom.xml
+++ b/ui/pom.xml
@@ -21,9 +21,9 @@
<parent>
<groupId>org.thingsboard</groupId>
<version>0.0.1-SNAPSHOT</version>
- <artifactId>server</artifactId>
+ <artifactId>thingsboard</artifactId>
</parent>
- <groupId>org.thingsboard.server</groupId>
+ <groupId>org.thingsboard</groupId>
<artifactId>ui</artifactId>
<packaging>jar</packaging>
diff --git a/ui/src/app/api/telemetry-websocket.service.js b/ui/src/app/api/telemetry-websocket.service.js
index f7e35eb..ab74f08 100644
--- a/ui/src/app/api/telemetry-websocket.service.js
+++ b/ui/src/app/api/telemetry-websocket.service.js
@@ -21,7 +21,7 @@ export default angular.module('thingsboard.api.telemetryWebsocket', [thingsboard
.name;
/*@ngInject*/
-function TelemetryWebsocketService($log, $websocket, $timeout, $window, types, userService) {
+function TelemetryWebsocketService($websocket, $timeout, $window, types, userService) {
var isOpening = false,
isOpened = false,
@@ -57,9 +57,7 @@ function TelemetryWebsocketService($log, $websocket, $timeout, $window, types, u
if (isOpened && (cmdsWrapper.tsSubCmds.length > 0 ||
cmdsWrapper.historyCmds.length > 0 ||
cmdsWrapper.attrSubCmds.length > 0)) {
- $log.debug("Sending subscription commands!");
dataStream.send(angular.copy(cmdsWrapper)).then(function () {
- $log.debug("Subscription commands were sent!");
checkToClose();
});
cmdsWrapper.tsSubCmds = [];
@@ -69,21 +67,17 @@ function TelemetryWebsocketService($log, $websocket, $timeout, $window, types, u
tryOpenSocket();
}
- function onError (message) {
- $log.debug("Websocket error:");
- $log.debug(message);
+ function onError (/*message*/) {
isOpening = false;
}
function onOpen () {
- $log.debug("Websocket opened");
isOpening = false;
isOpened = true;
publishCommands();
}
function onClose () {
- $log.debug("Websocket closed");
isOpening = false;
isOpened = false;
}
diff --git a/ui/src/app/help/help-links.constant.js b/ui/src/app/help/help-links.constant.js
index c0e2e89..ae2bdc1 100644
--- a/ui/src/app/help/help-links.constant.js
+++ b/ui/src/app/help/help-links.constant.js
@@ -46,8 +46,7 @@ var pluginActionsClazzHelpLinkMap = {
'org.thingsboard.server.extensions.rest.action.RestApiCallPluginAction': 'pluginActionRestApiCall'
};
-//var helpBaseUrl = "http://thingsboard.io";
-var helpBaseUrl = "http://localhost:4000";
+var helpBaseUrl = "http://thingsboard.io";
export default angular.module('thingsboard.help', [])
.constant('helpLinks',