Modular hawkBit (#378)
* Cleaned up component scan * More flexibility for hawkBit micro services * Introduce spring boot starters * Eclipse Jetty as hawkBit default * Fixed links as prep for wiki removal Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>
This commit is contained in:
1
examples/hawkbit-custom-theme-example/.gitignore
vendored
Normal file
1
examples/hawkbit-custom-theme-example/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/.springBeans
|
||||
@@ -8,7 +8,6 @@ package org.eclipse.hawkbit.app;
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*/
|
||||
|
||||
import org.eclipse.hawkbit.EnableJpaRepository;
|
||||
import org.eclipse.hawkbit.autoconfigure.security.EnableHawkbitManagedSecurityConfiguration;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@@ -22,7 +21,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@EnableHawkbitManagedSecurityConfiguration
|
||||
// Exception squid:S1118 - Spring boot standard behavior
|
||||
@SuppressWarnings({ "squid:S1118" })
|
||||
@EnableJpaRepository
|
||||
public class Start {
|
||||
/**
|
||||
* Main method to start the spring-boot application.
|
||||
|
||||
@@ -70,7 +70,7 @@ Example: for 10 simulated devices that start with the name prefix "activeSim":
|
||||
http://localhost:8083/start?amount=10&name=activeSim
|
||||
```
|
||||
|
||||
Example: for 5 simulated devices that start with the name prefix "ddi" using the Direct Device Integration API (http):
|
||||
Example: for 5 simulated devices that start with the name prefix "ddi" using the Direct Device Integration API (http) authenticated by given gateway token, a pool interval of 10 seconds and a custom port for the DDI service.:
|
||||
```
|
||||
http://localhost:8083/start?amount=5&name=ddi?api=ddi
|
||||
http://localhost:8083/start?amount=5&name=ddi&api=ddi&gatewaytoken=d5F2mmlARiMuMOquRmLlxW4xZFHy4mEV&polldelay=10&endpoint=http://localhost:8085
|
||||
```
|
||||
|
||||
1
examples/hawkbit-example-app/.gitignore
vendored
1
examples/hawkbit-example-app/.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
/target/
|
||||
/artifactrepo/*
|
||||
/.springBeans
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>hawkbit-example-app</artifactId>
|
||||
<name>hawkBit-example :: UI Application</name>
|
||||
<name>hawkBit-example :: Update Server</name>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
@@ -56,76 +56,17 @@
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<!-- Hawkbit -->
|
||||
<dependency>
|
||||
<groupId>org.eclipse.hawkbit</groupId>
|
||||
<artifactId>hawkbit-autoconfigure</artifactId>
|
||||
<artifactId>hawkbit-boot-starter</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.hawkbit</groupId>
|
||||
<artifactId>hawkbit-mgmt-resource</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.hawkbit</groupId>
|
||||
<artifactId>hawkbit-ddi-resource</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.hawkbit</groupId>
|
||||
<artifactId>hawkbit-dmf-amqp</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.hawkbit</groupId>
|
||||
<artifactId>hawkbit-ui</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.hawkbit</groupId>
|
||||
<artifactId>hawkbit-security-integration</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.hawkbit</groupId>
|
||||
<artifactId>hawkbit-http-security</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.hawkbit</groupId>
|
||||
<artifactId>hawkbit-repository-jpa</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<!-- Spring -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.security</groupId>
|
||||
<artifactId>spring-security-aspects</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.h2database</groupId>
|
||||
<artifactId>h2</artifactId>
|
||||
</dependency>
|
||||
</dependency>
|
||||
|
||||
<!-- exclude gwt-elemental as there are class conflicts -->
|
||||
<dependency>
|
||||
<groupId>com.vaadin</groupId>
|
||||
<artifactId>vaadin-client</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.vaadin.external.gwt</groupId>
|
||||
<artifactId>gwt-elemental</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -8,10 +8,7 @@
|
||||
*/
|
||||
package org.eclipse.hawkbit.app;
|
||||
|
||||
import org.eclipse.hawkbit.EnableJpaRepository;
|
||||
import org.eclipse.hawkbit.autoconfigure.security.EnableHawkbitManagedSecurityConfiguration;
|
||||
import org.eclipse.hawkbit.ddi.EnableDdiApi;
|
||||
import org.eclipse.hawkbit.mgmt.EnableMgmtApi;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@@ -22,9 +19,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
*/
|
||||
@SpringBootApplication
|
||||
@EnableHawkbitManagedSecurityConfiguration
|
||||
@EnableMgmtApi
|
||||
@EnableDdiApi
|
||||
@EnableJpaRepository
|
||||
// Exception squid:S1118 - Spring boot standard behavior
|
||||
@SuppressWarnings({ "squid:S1118" })
|
||||
public class Start {
|
||||
|
||||
@@ -112,10 +112,6 @@ public class ConfigurableScenario {
|
||||
runRollouts(scenario);
|
||||
}
|
||||
|
||||
if (scenario.isRunRollouts()) {
|
||||
runRollouts(scenario);
|
||||
}
|
||||
|
||||
if (scenario.isRunSemiAutomaticRollouts() && !scenario.getDeviceGroups().isEmpty()) {
|
||||
runSemiAutomaticRollouts(scenario);
|
||||
}
|
||||
@@ -217,7 +213,7 @@ public class ConfigurableScenario {
|
||||
// start the created Rollout
|
||||
rolloutResource.start(rolloutResponseBody.getRolloutId());
|
||||
|
||||
waitUntilRolloutIsComplete(scenario);
|
||||
waitUntilRolloutIsComplete(rolloutResponseBody.getRolloutId());
|
||||
LOGGER.info("Run rollout for set {} -> Done", set.getDsId());
|
||||
}
|
||||
|
||||
@@ -256,20 +252,19 @@ public class ConfigurableScenario {
|
||||
// start the created Rollout
|
||||
rolloutResource.start(rolloutResponseBody.getRolloutId());
|
||||
|
||||
waitUntilRolloutIsComplete(scenario);
|
||||
waitUntilRolloutIsComplete(rolloutResponseBody.getRolloutId());
|
||||
LOGGER.info("Run rollout for set {} -> Done", set.getDsId());
|
||||
}
|
||||
|
||||
private void waitUntilRolloutIsComplete(final Scenario scenario) {
|
||||
private void waitUntilRolloutIsComplete(final Long id) {
|
||||
do {
|
||||
try {
|
||||
TimeUnit.SECONDS.sleep(35);
|
||||
TimeUnit.SECONDS.sleep(5);
|
||||
} catch (final InterruptedException e) {
|
||||
LOGGER.warn("Interrupted!");
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
} while (targetResource.getTargets(0, 1, null, "updateStatus==IN_SYNC").getBody().getTotal() < scenario
|
||||
.getTargets());
|
||||
} while (!"FINISHED".equalsIgnoreCase(rolloutResource.getRollout(id).getBody().getStatus()));
|
||||
}
|
||||
|
||||
private void waitUntilRolloutIsReady(final Long id) {
|
||||
|
||||
Reference in New Issue
Block a user