Version control executor
This commit is contained in:
		
							parent
							
								
									c6ebf049a2
								
							
						
					
					
						commit
						1d6b9a5cbd
					
				@ -86,6 +86,21 @@
 | 
				
			|||||||
            <groupId>org.eclipse.jgit</groupId>
 | 
					            <groupId>org.eclipse.jgit</groupId>
 | 
				
			||||||
            <artifactId>org.eclipse.jgit</artifactId>
 | 
					            <artifactId>org.eclipse.jgit</artifactId>
 | 
				
			||||||
        </dependency>
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>io.grpc</groupId>
 | 
				
			||||||
 | 
					            <artifactId>grpc-netty-shaded</artifactId>
 | 
				
			||||||
 | 
					            <scope>provided</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>io.grpc</groupId>
 | 
				
			||||||
 | 
					            <artifactId>grpc-protobuf</artifactId>
 | 
				
			||||||
 | 
					            <scope>provided</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>io.grpc</groupId>
 | 
				
			||||||
 | 
					            <artifactId>grpc-stub</artifactId>
 | 
				
			||||||
 | 
					            <scope>provided</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
        <dependency>
 | 
					        <dependency>
 | 
				
			||||||
            <groupId>org.springframework.boot</groupId>
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
            <artifactId>spring-boot-starter-test</artifactId>
 | 
					            <artifactId>spring-boot-starter-test</artifactId>
 | 
				
			||||||
@ -109,7 +124,19 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    <build>
 | 
					    <build>
 | 
				
			||||||
        <plugins>
 | 
					        <plugins>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.xolstice.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>protobuf-maven-plugin</artifactId>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
        </plugins>
 | 
					        </plugins>
 | 
				
			||||||
    </build>
 | 
					    </build>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <distributionManagement>
 | 
				
			||||||
 | 
					        <repository>
 | 
				
			||||||
 | 
					            <id>thingsboard-repo-deploy</id>
 | 
				
			||||||
 | 
					            <name>ThingsBoard Repo Deployment</name>
 | 
				
			||||||
 | 
					            <url>https://repo.thingsboard.io/artifactory/libs-release-public</url>
 | 
				
			||||||
 | 
					        </repository>
 | 
				
			||||||
 | 
					    </distributionManagement>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</project>
 | 
					</project>
 | 
				
			||||||
 | 
				
			|||||||
@ -226,7 +226,6 @@ public class DefaultGitRepositoryService implements GitRepositoryService {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    private EntityVersion toVersion(GitRepository.Commit commit) {
 | 
					    private EntityVersion toVersion(GitRepository.Commit commit) {
 | 
				
			||||||
        return new EntityVersion(commit.getId(), commit.getMessage());
 | 
					        return new EntityVersion(commit.getId(), commit.getMessage());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										71
									
								
								common/version-control/src/main/proto/vc.proto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								common/version-control/src/main/proto/vc.proto
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,71 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Copyright © 2016-2022 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.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					syntax = "proto3";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					option java_package = "org.thingsboard.server.gen.vc.v1";
 | 
				
			||||||
 | 
					option java_multiple_files = true;
 | 
				
			||||||
 | 
					option java_outer_classname = "EdgeProtos";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package vc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Interface exported by the ThingsBoard Core.
 | 
				
			||||||
 | 
					service TbGitRpcService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  rpc commit(stream CommitRequestMsg) returns (CommitResponseMsg) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Data Structures;
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					message CommitRequestMsg {
 | 
				
			||||||
 | 
					  string txId = 1;
 | 
				
			||||||
 | 
					  PrepareMsg prepareMsg = 2;
 | 
				
			||||||
 | 
					  AddMsg addMsg = 3;
 | 
				
			||||||
 | 
					  DeleteMsg deleteMsg = 4;
 | 
				
			||||||
 | 
					  PushMsg pushMsg = 5;
 | 
				
			||||||
 | 
					  AbortMsg abortMsg = 6;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					message CommitResponseMsg {
 | 
				
			||||||
 | 
					  string id = 1;
 | 
				
			||||||
 | 
					  string name = 2;
 | 
				
			||||||
 | 
					  int32 added = 3;
 | 
				
			||||||
 | 
					  int32 modified = 4;
 | 
				
			||||||
 | 
					  int32 removed = 5;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					message PrepareMsg {
 | 
				
			||||||
 | 
					  string tenantId = 1;
 | 
				
			||||||
 | 
					  string commitMsg = 2;
 | 
				
			||||||
 | 
					  string branchName = 3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					message AddMsg {
 | 
				
			||||||
 | 
					  string relativePath = 1;
 | 
				
			||||||
 | 
					  string entityDataJson = 2;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					message DeleteMsg {
 | 
				
			||||||
 | 
					  string relativePath = 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					message PushMsg {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					message AbortMsg {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -40,6 +40,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    <modules>
 | 
					    <modules>
 | 
				
			||||||
        <module>tb</module>
 | 
					        <module>tb</module>
 | 
				
			||||||
 | 
					        <module>vc-executor</module>
 | 
				
			||||||
        <module>js-executor</module>
 | 
					        <module>js-executor</module>
 | 
				
			||||||
        <module>web-ui</module>
 | 
					        <module>web-ui</module>
 | 
				
			||||||
        <module>tb-node</module>
 | 
					        <module>tb-node</module>
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										136
									
								
								msa/vc-executor/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								msa/vc-executor/pom.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,136 @@
 | 
				
			|||||||
 | 
					<!--
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright © 2016-2022 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-->
 | 
				
			||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         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</groupId>
 | 
				
			||||||
 | 
					        <version>3.4.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					        <artifactId>msa</artifactId>
 | 
				
			||||||
 | 
					    </parent>
 | 
				
			||||||
 | 
					    <groupId>org.thingsboard.msa</groupId>
 | 
				
			||||||
 | 
					    <artifactId>vc-executor</artifactId>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <name>ThingsBoard Version Control Executor</name>
 | 
				
			||||||
 | 
					    <url>https://thingsboard.io</url>
 | 
				
			||||||
 | 
					    <description>Project for ThingsBoard version control microservice</description>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <properties>
 | 
				
			||||||
 | 
					        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 | 
				
			||||||
 | 
					        <main.dir>${basedir}/../..</main.dir>
 | 
				
			||||||
 | 
					        <pkg.type>java</pkg.type>
 | 
				
			||||||
 | 
					        <pkg.disabled>false</pkg.disabled>
 | 
				
			||||||
 | 
					        <pkg.process-resources.phase>process-resources</pkg.process-resources.phase>
 | 
				
			||||||
 | 
					        <pkg.package.phase>package</pkg.package.phase>
 | 
				
			||||||
 | 
					        <pkg.name>tb-mqtt-transport</pkg.name>
 | 
				
			||||||
 | 
					        <pkg.copyInstallScripts>false</pkg.copyInstallScripts>
 | 
				
			||||||
 | 
					        <pkg.win.dist>${project.build.directory}/windows</pkg.win.dist>
 | 
				
			||||||
 | 
					        <pkg.implementationTitle>ThingsBoard Version Control Executor Service</pkg.implementationTitle>
 | 
				
			||||||
 | 
					        <pkg.mainClass>org.thingsboard.server.vc.ThingsboardVersionControlExecutorApplication</pkg.mainClass>
 | 
				
			||||||
 | 
					    </properties>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.thingsboard.common</groupId>
 | 
				
			||||||
 | 
					            <artifactId>version-control</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-starter-web</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>io.grpc</groupId>
 | 
				
			||||||
 | 
					            <artifactId>grpc-netty-shaded</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>io.grpc</groupId>
 | 
				
			||||||
 | 
					            <artifactId>grpc-protobuf</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>io.grpc</groupId>
 | 
				
			||||||
 | 
					            <artifactId>grpc-stub</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-starter-test</artifactId>
 | 
				
			||||||
 | 
					            <scope>test</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.junit.vintage</groupId>
 | 
				
			||||||
 | 
					            <artifactId>junit-vintage-engine</artifactId>
 | 
				
			||||||
 | 
					            <scope>test</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.awaitility</groupId>
 | 
				
			||||||
 | 
					            <artifactId>awaitility</artifactId>
 | 
				
			||||||
 | 
					            <scope>test</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <build>
 | 
				
			||||||
 | 
					        <finalName>${pkg.name}-${project.version}</finalName>
 | 
				
			||||||
 | 
					        <resources>
 | 
				
			||||||
 | 
					            <resource>
 | 
				
			||||||
 | 
					                <directory>${project.basedir}/src/main/resources</directory>
 | 
				
			||||||
 | 
					            </resource>
 | 
				
			||||||
 | 
					        </resources>
 | 
				
			||||||
 | 
					        <plugins>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>maven-resources-plugin</artifactId>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>maven-dependency-plugin</artifactId>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>maven-jar-plugin</artifactId>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					                <artifactId>spring-boot-maven-plugin</artifactId>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.thingsboard</groupId>
 | 
				
			||||||
 | 
					                <artifactId>gradle-maven-plugin</artifactId>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>maven-assembly-plugin</artifactId>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>maven-install-plugin</artifactId>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					        </plugins>
 | 
				
			||||||
 | 
					    </build>
 | 
				
			||||||
 | 
					    <repositories>
 | 
				
			||||||
 | 
					        <repository>
 | 
				
			||||||
 | 
					            <id>jenkins</id>
 | 
				
			||||||
 | 
					            <name>Jenkins Repository</name>
 | 
				
			||||||
 | 
					            <url>https://repo.jenkins-ci.org/releases</url>
 | 
				
			||||||
 | 
					            <snapshots>
 | 
				
			||||||
 | 
					                <enabled>false</enabled>
 | 
				
			||||||
 | 
					            </snapshots>
 | 
				
			||||||
 | 
					        </repository>
 | 
				
			||||||
 | 
					    </repositories>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
							
								
								
									
										43
									
								
								msa/vc-executor/src/main/conf/logback.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								msa/vc-executor/src/main/conf/logback.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,43 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8" ?>
 | 
				
			||||||
 | 
					<!--
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright © 2016-2022 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-->
 | 
				
			||||||
 | 
					<!DOCTYPE configuration>
 | 
				
			||||||
 | 
					<configuration>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <appender name="fileLogAppender"
 | 
				
			||||||
 | 
					              class="ch.qos.logback.core.rolling.RollingFileAppender">
 | 
				
			||||||
 | 
					        <file>${pkg.logFolder}/${pkg.name}.log</file>
 | 
				
			||||||
 | 
					        <rollingPolicy
 | 
				
			||||||
 | 
					                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
 | 
				
			||||||
 | 
					            <fileNamePattern>${pkg.logFolder}/${pkg.name}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
 | 
				
			||||||
 | 
					            <maxFileSize>100MB</maxFileSize>
 | 
				
			||||||
 | 
					            <maxHistory>30</maxHistory>
 | 
				
			||||||
 | 
					            <totalSizeCap>3GB</totalSizeCap>
 | 
				
			||||||
 | 
					        </rollingPolicy>
 | 
				
			||||||
 | 
					        <encoder>
 | 
				
			||||||
 | 
					            <pattern>%d{ISO8601} [%thread] %-5level %logger{36} - %msg%n</pattern>
 | 
				
			||||||
 | 
					        </encoder>
 | 
				
			||||||
 | 
					    </appender>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <logger name="org.thingsboard.server" level="INFO" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <root level="INFO">
 | 
				
			||||||
 | 
					        <appender-ref ref="fileLogAppender"/>
 | 
				
			||||||
 | 
					    </root>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</configuration>
 | 
				
			||||||
							
								
								
									
										22
									
								
								msa/vc-executor/src/main/conf/tb-vc-executor.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								msa/vc-executor/src/main/conf/tb-vc-executor.conf
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					#
 | 
				
			||||||
 | 
					# Copyright © 2016-2022 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.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export JAVA_OPTS="$JAVA_OPTS -Xlog:gc*,heap*,age*,safepoint=debug:file=@pkg.logFolder@/gc.log:time,uptime,level,tags:filecount=10,filesize=10M"
 | 
				
			||||||
 | 
					export JAVA_OPTS="$JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions -XX:+HeapDumpOnOutOfMemoryError"
 | 
				
			||||||
 | 
					export JAVA_OPTS="$JAVA_OPTS -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -XX:+UseCondCardMark"
 | 
				
			||||||
 | 
					export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=500 -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:MaxTenuringThreshold=10"
 | 
				
			||||||
 | 
					export LOG_FILENAME=${pkg.name}.out
 | 
				
			||||||
 | 
					export LOADER_PATH=${pkg.installFolder}/conf
 | 
				
			||||||
@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					package org.thingsboard.server.vc; /**
 | 
				
			||||||
 | 
					 * Copyright © 2016-2022 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.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.boot.SpringApplication;
 | 
				
			||||||
 | 
					import org.springframework.boot.SpringBootConfiguration;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.ComponentScan;
 | 
				
			||||||
 | 
					import org.springframework.scheduling.annotation.EnableAsync;
 | 
				
			||||||
 | 
					import org.springframework.scheduling.annotation.EnableScheduling;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@SpringBootConfiguration
 | 
				
			||||||
 | 
					@EnableAsync
 | 
				
			||||||
 | 
					@EnableScheduling
 | 
				
			||||||
 | 
					@ComponentScan({"org.thingsboard.server.vc", "org.thingsboard.server.common", "org.thingsboard.server.sync.vc"})
 | 
				
			||||||
 | 
					public class ThingsboardVersionControlExecutorApplication {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static final String SPRING_CONFIG_NAME_KEY = "--spring.config.name";
 | 
				
			||||||
 | 
					    private static final String DEFAULT_SPRING_CONFIG_PARAM = SPRING_CONFIG_NAME_KEY + "=" + "tb-vc-executor";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static void main(String[] args) {
 | 
				
			||||||
 | 
					        SpringApplication.run(ThingsboardVersionControlExecutorApplication.class, updateArguments(args));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static String[] updateArguments(String[] args) {
 | 
				
			||||||
 | 
					        if (Arrays.stream(args).noneMatch(arg -> arg.startsWith(SPRING_CONFIG_NAME_KEY))) {
 | 
				
			||||||
 | 
					            String[] modifiedArgs = new String[args.length + 1];
 | 
				
			||||||
 | 
					            System.arraycopy(args, 0, modifiedArgs, 0, args.length);
 | 
				
			||||||
 | 
					            modifiedArgs[args.length] = DEFAULT_SPRING_CONFIG_PARAM;
 | 
				
			||||||
 | 
					            return modifiedArgs;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return args;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										34
									
								
								msa/vc-executor/src/main/resources/logback.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								msa/vc-executor/src/main/resources/logback.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8" ?>
 | 
				
			||||||
 | 
					<!--
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright © 2016-2022 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-->
 | 
				
			||||||
 | 
					<!DOCTYPE configuration>
 | 
				
			||||||
 | 
					<configuration scan="true" scanPeriod="10 seconds">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
 | 
				
			||||||
 | 
					        <encoder>
 | 
				
			||||||
 | 
					            <pattern>%d{ISO8601} [%thread] %-5level %logger{36} - %msg%n</pattern>
 | 
				
			||||||
 | 
					        </encoder>
 | 
				
			||||||
 | 
					    </appender>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <logger name="org.thingsboard.server" level="TRACE" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <root level="INFO">
 | 
				
			||||||
 | 
					        <appender-ref ref="STDOUT"/>
 | 
				
			||||||
 | 
					    </root>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</configuration>
 | 
				
			||||||
							
								
								
									
										27
									
								
								msa/vc-executor/src/main/resources/tb-vc-executor.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								msa/vc-executor/src/main/resources/tb-vc-executor.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					#
 | 
				
			||||||
 | 
					# Copyright © 2016-2022 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.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If you enabled process metrics you should also enable 'web-environment'.
 | 
				
			||||||
 | 
					spring.main.web-environment: "${WEB_APPLICATION_ENABLE:false}"
 | 
				
			||||||
 | 
					# If you enabled process metrics you should set 'web-application-type' to 'servlet' value.
 | 
				
			||||||
 | 
					spring.main.web-application-type: "${WEB_APPLICATION_TYPE:none}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					server:
 | 
				
			||||||
 | 
					  # Server bind address (has no effect if web-environment is disabled).
 | 
				
			||||||
 | 
					  address: "${HTTP_BIND_ADDRESS:0.0.0.0}"
 | 
				
			||||||
 | 
					  # Server bind port (has no effect if web-environment is disabled).
 | 
				
			||||||
 | 
					  port: "${HTTP_BIND_PORT:8080}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user