Skip to content

Commit d9ba028

Browse files
authored
[DXP-1961] Loading service metadata for Dashboards from project localization and mesh localization. (#214)
1 parent ac7d184 commit d9ba028

File tree

4 files changed

+28
-15
lines changed

4 files changed

+28
-15
lines changed

core/pom.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919
<quarkus.package.main-class>dev.streamx.cli.StreamxCommand</quarkus.package.main-class>
2020

2121
<!-- this should not be overridden by user, same as streamx runner dependencies -->
22-
<!-- FIXME use fixed version after streamx dashboard stabilizes -->
23-
<streamx.dev.dashboard.image>ghcr.io/streamx-dev/streamx-dashboard/streamx-local-dashboard:latest-jvm</streamx.dev.dashboard.image>
22+
<streamx.dev.dashboard.image>ghcr.io/streamx-dev/streamx-dashboard/streamx-local-dashboard:0.0.7-patch002-jvm</streamx.dev.dashboard.image>
2423
</properties>
2524

2625
<dependencies>

core/src/main/java/dev/streamx/cli/command/dev/DashboardContainer.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,20 @@ public class DashboardContainer extends GenericContainer<DashboardContainer> {
1212
private static final int DASHBOARDS_CONTAINER_PORT = 8080;
1313

1414
public DashboardContainer(String fullImageName, int exposedPort, String meshPath,
15-
String projectDirectory) {
15+
String meshDirectory, String projectDirectory) {
1616
super(DockerImageName.parse(fullImageName));
1717
setExposedPorts(List.of(DASHBOARDS_CONTAINER_PORT));
1818
addFixedExposedPort(exposedPort, DASHBOARDS_CONTAINER_PORT);
1919

20-
withFileSystemBind(projectDirectory, "/data/project", BindMode.READ_WRITE);
21-
String servicesDirectory = projectDirectory + "/services";
22-
withFileSystemBind(servicesDirectory, "/services-metadata-registry-root",
23-
BindMode.READ_WRITE);
2420
withFileSystemBind(meshPath, "/data/mesh.yaml", BindMode.READ_WRITE);
21+
withFileSystemBind(meshDirectory, "/data/mesh", BindMode.READ_WRITE);
22+
23+
if (projectDirectory != null) {
24+
withFileSystemBind(projectDirectory, "/data/project", BindMode.READ_WRITE);
25+
}
2526

2627
withCreateContainerCmdModifier(cmd -> cmd.withName(CONTAINER_NAME));
28+
withEnv("streamx.dashboard.mesh-manager.services-metadata-registry-roots",
29+
"/data/project/services,/data/mesh/services");
2730
}
2831
}

core/src/main/java/dev/streamx/cli/command/dev/DashboardRunner.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@ public class DashboardRunner {
2424

2525
private DashboardContainer dashboardContainer;
2626

27-
public void startStreamxDashboard(String meshPathAsString, String projectDirectoryAsString) {
27+
public void startStreamxDashboard(String meshPath, String meshDirectory,
28+
String projectDirectory) {
2829
dashboardContainer = new DashboardContainer(
2930
StreamxMavenPropertiesUtils.getDashboardImage(),
3031
devConfig.dashboardPort(),
31-
meshPathAsString,
32-
projectDirectoryAsString
32+
meshPath,
33+
meshDirectory,
34+
projectDirectory
3335
).withStartupTimeout(Duration.ofSeconds(CONTAINER_TIMEOUT_IN_SECS));
3436
dashboardContainer.start();
3537

core/src/main/java/dev/streamx/cli/command/dev/DevCommand.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,20 @@ public void run() {
112112
private void startDashboard(Path meshPath) {
113113
print("Setting up StreamX Dashboard...");
114114
var meshPathAsString = meshPath.toAbsolutePath().normalize().toString();
115-
var projectDirectory = meshPath.resolve("..");
116-
var projectDirectoryAsString = projectDirectory.toAbsolutePath().normalize().toString();
115+
Path meshDirectory = meshPath.resolve("..");
116+
Path projectDirectory = null;
117+
if (Files.exists(meshDirectory.resolve("..").normalize())) {
118+
projectDirectory = meshDirectory.resolve("..").normalize();
119+
}
120+
121+
var meshDirectoryAsString = meshDirectory.toAbsolutePath().normalize().toString();
122+
var projectDirectoryAsString = projectDirectory != null
123+
? projectDirectory.toAbsolutePath().normalize().toString()
124+
: null;
117125

118-
logger.infov("Resolved mesh {0} and project directory {1}",
119-
meshPathAsString, projectDirectoryAsString);
120-
dashboardRunner.startStreamxDashboard(meshPathAsString, projectDirectoryAsString);
126+
logger.infov("Resolved mesh {0}, mesh directory {1} and project directory {2}",
127+
meshPathAsString, meshDirectoryAsString, projectDirectoryAsString);
128+
dashboardRunner.startStreamxDashboard(meshPathAsString, meshDirectoryAsString,
129+
projectDirectoryAsString);
121130
}
122131
}

0 commit comments

Comments
 (0)