You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2023/07/13 16:10:07 UTC
[camel-karavan] 03/07: DataGrid query works #817
This is an automated email from the ASF dual-hosted git repository.
marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
commit c51b8206412a51675c7aaa39843fd9aeaad51514
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Wed Jul 12 14:56:59 2023 -0400
DataGrid query works #817
---
karavan-cloud/karavan-datagrid/.java-version | 1 +
karavan-cloud/karavan-datagrid/pom.xml | 20 +++----
.../camel/karavan/datagrid/DatagridService.java | 23 +++++++-
.../camel/karavan/datagrid/model/KaravanGroup.java | 35 -----------
.../karavan/datagrid/model/KaravanSchema.java | 2 +
.../camel/karavan/datagrid/model/KaravanUser.java | 67 ----------------------
.../camel/karavan/datagrid/model/PodStatus.java | 16 +++++-
.../camel/karavan/datagrid/model/ProjectFile.java | 1 +
.../{DevCommandTest.java => DataGridTest.java} | 10 +++-
9 files changed, 54 insertions(+), 121 deletions(-)
diff --git a/karavan-cloud/karavan-datagrid/.java-version b/karavan-cloud/karavan-datagrid/.java-version
new file mode 100644
index 00000000..b4de3947
--- /dev/null
+++ b/karavan-cloud/karavan-datagrid/.java-version
@@ -0,0 +1 @@
+11
diff --git a/karavan-cloud/karavan-datagrid/pom.xml b/karavan-cloud/karavan-datagrid/pom.xml
index b66104f2..4487130b 100644
--- a/karavan-cloud/karavan-datagrid/pom.xml
+++ b/karavan-cloud/karavan-datagrid/pom.xml
@@ -63,6 +63,13 @@
<include>**/**.xml</include>
</includes>
</resource>
+ <resource>
+ <directory>target/classes/proto</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>karavan.proto</include>
+ </includes>
+ </resource>
</resources>
<plugins>
<plugin>
@@ -113,19 +120,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
- <configuration>
- <nonFilteredFileExtensions>
- <nonFilteredFileExtension>ico</nonFilteredFileExtension>
- <nonFilteredFileExtension>eot</nonFilteredFileExtension>
- <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
- <nonFilteredFileExtension>woff</nonFilteredFileExtension>
- <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
- <nonFilteredFileExtension>js</nonFilteredFileExtension>
- <nonFilteredFileExtension>html</nonFilteredFileExtension>
- <nonFilteredFileExtension>css</nonFilteredFileExtension>
- <nonFilteredFileExtension>svg</nonFilteredFileExtension>
- </nonFilteredFileExtensions>
- </configuration>
</plugin>
</plugins>
</build>
diff --git a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/DatagridService.java b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/DatagridService.java
index 4968ab83..6141addd 100644
--- a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/DatagridService.java
+++ b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/DatagridService.java
@@ -28,9 +28,11 @@ import org.infinispan.client.hotrod.RemoteCacheManager;
import org.infinispan.client.hotrod.Search;
import org.infinispan.client.hotrod.configuration.ClientIntelligence;
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
+import org.infinispan.client.hotrod.impl.query.RemoteQuery;
import org.infinispan.commons.configuration.StringConfiguration;
import org.infinispan.commons.marshall.ProtoStreamMarshaller;
import org.infinispan.query.dsl.QueryFactory;
+import org.infinispan.query.remote.client.ProtobufMetadataManagerConstants;
import org.jboss.logging.Logger;
import javax.enterprise.context.ApplicationScoped;
@@ -39,12 +41,18 @@ import javax.inject.Inject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.time.Instant;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
+import static org.infinispan.query.remote.client.ProtobufMetadataManagerConstants.PROTOBUF_METADATA_CACHE_NAME;
+
@Default
@ApplicationScoped
public class DatagridService {
@@ -119,6 +127,9 @@ public class DatagridService {
devmodeCommands = getOrCreateCache(DevModeCommand.CACHE, true);
cacheManager.getCache(DevModeCommand.CACHE).addClientListener(new ClientRunnerListener(eventBus));
+ // Grab the generated protobuf schema and registers in the server.
+ cacheManager.getCache(PROTOBUF_METADATA_CACHE_NAME).put("karavan.proto", getResourceFile("/proto/karavan.proto"));
+
ready.set(true);
LOGGER.info("DatagridService is started in remote mode");
}
@@ -130,7 +141,6 @@ public class DatagridService {
private <K, V> RemoteCache<K, V> getOrCreateCache(String name, boolean command) {
String config = getResourceFile(command ? "/command-cache-config.xml" : "/data-cache-config.xml");
return cacheManager.administration().getOrCreateCache(name, new StringConfiguration(String.format(config, name)));
-
}
private void cleanData() {
@@ -139,6 +149,7 @@ public class DatagridService {
podStatuses.clear();
pipelineStatuses.clear();
camelStatuses.clear();
+ devmodeCommands.clear();
}
@ConsumeEvent(value = ADDRESS_DEVMODE_COMMAND_INTERNAL, blocking = true, ordered = true, local = false)
@@ -231,7 +242,7 @@ public class DatagridService {
}
public List<DeploymentStatus> getDeploymentStatuses() {
- return deploymentStatuses.values().stream().collect(Collectors.toList());
+ return new ArrayList<>(deploymentStatuses.values());
}
public List<DeploymentStatus> getDeploymentStatuses(String env) {
@@ -277,6 +288,10 @@ public class DatagridService {
.execute().list();
}
+ public List<PodStatus> getAllPodStatuses() {
+ return new ArrayList<>(podStatuses.values());
+ }
+
public void savePodStatus(PodStatus status) {
podStatuses.put(GroupedKey.create(status.getProjectId(), status.getEnv(), status.getName()), status);
}
@@ -371,6 +386,10 @@ public class DatagridService {
.execute().list();
}
+ public List<DevModeStatus> getDevModeStatuses() {
+ return new ArrayList<>(devmodeStatuses.values());
+ }
+
public void sendDevModeCommand(String projectId, DevModeCommand command) {
if (command.getProjectId() == null) {
command.setProjectId(projectId);
diff --git a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/KaravanGroup.java b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/KaravanGroup.java
deleted file mode 100644
index 6a194442..00000000
--- a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/KaravanGroup.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.camel.karavan.datagrid.model;
-
-import org.infinispan.protostream.annotations.ProtoFactory;
-import org.infinispan.protostream.annotations.ProtoField;
-
-import java.util.List;
-
-public class KaravanGroup {
- @ProtoField(number = 1)
- String name;
- @ProtoField(number = 2)
- List<String> users;
-
- @ProtoFactory
- public KaravanGroup(String name, List<String> users) {
- this.name = name;
- this.users = users;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public List<String> getUsers() {
- return users;
- }
-
- public void setUsers(List<String> users) {
- this.users = users;
- }
-}
diff --git a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/KaravanSchema.java b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/KaravanSchema.java
index f4152c53..be78b42a 100644
--- a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/KaravanSchema.java
+++ b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/KaravanSchema.java
@@ -19,6 +19,8 @@ import org.infinispan.protostream.annotations.AutoProtoSchemaBuilder;
DevModeCommand.class,
DevModeStatus.class
},
+ schemaFileName = "karavan.proto",
+ schemaFilePath = "proto/",
schemaPackageName = "karavan")
public interface KaravanSchema extends GeneratedSchema {
}
diff --git a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/KaravanUser.java b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/KaravanUser.java
deleted file mode 100644
index 6cfc3728..00000000
--- a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/KaravanUser.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package org.apache.camel.karavan.datagrid.model;
-
-import org.infinispan.protostream.annotations.ProtoFactory;
-import org.infinispan.protostream.annotations.ProtoField;
-
-public class KaravanUser {
- @ProtoField(number = 1)
- String username;
- @ProtoField(number = 2)
- String password;
- @ProtoField(number = 3)
- String firstName;
- @ProtoField(number = 4)
- String lastName;
- @ProtoField(number = 5)
- boolean showTour;
-
-
- @ProtoFactory
- public KaravanUser(String username, String password, String firstName, String lastName, boolean showTour) {
- this.username = username;
- this.password = password;
- this.firstName = firstName;
- this.lastName = lastName;
- this.showTour = showTour;
- }
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getFirstName() {
- return firstName;
- }
-
- public void setFirstName(String firstName) {
- this.firstName = firstName;
- }
-
- public String getLastName() {
- return lastName;
- }
-
- public void setLastName(String lastName) {
- this.lastName = lastName;
- }
-
- public boolean isShowTour() {
- return showTour;
- }
-
- public void setShowTour(boolean showTour) {
- this.showTour = showTour;
- }
-}
diff --git a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/PodStatus.java b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/PodStatus.java
index ffb7b9f5..c1ee17e8 100644
--- a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/PodStatus.java
+++ b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/PodStatus.java
@@ -21,9 +21,11 @@ public class PodStatus {
String memoryInfo;
@ProtoField(number = 8)
String cpuInfo;
+ @ProtoField(number = 9)
+ String created;
@ProtoFactory
- public PodStatus(String name, Boolean ready, String deployment, String projectId, String env, Boolean inDevMode, String memoryInfo, String cpuInfo) {
+ public PodStatus(String name, Boolean ready, String deployment, String projectId, String env, Boolean inDevMode, String memoryInfo, String cpuInfo, String created) {
this.name = name;
this.ready = ready;
this.deployment = deployment;
@@ -32,15 +34,17 @@ public class PodStatus {
this.inDevMode = inDevMode;
this.memoryInfo = memoryInfo;
this.cpuInfo = cpuInfo;
+ this.created = created;
}
- public PodStatus(String name, Boolean ready, String deployment, String projectId, String env, Boolean inDevMode) {
+ public PodStatus(String name, Boolean ready, String deployment, String projectId, String env, Boolean inDevMode, String created) {
this.name = name;
this.ready = ready;
this.deployment = deployment;
this.projectId = projectId;
this.env = env;
this.inDevMode = inDevMode;
+ this.created = created;
}
public String getName() {
@@ -106,4 +110,12 @@ public class PodStatus {
public void setCpuInfo(String cpuInfo) {
this.cpuInfo = cpuInfo;
}
+
+ public String getCreated() {
+ return created;
+ }
+
+ public void setCreated(String created) {
+ this.created = created;
+ }
}
diff --git a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/ProjectFile.java b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/ProjectFile.java
index bab93c65..ff1e1311 100644
--- a/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/ProjectFile.java
+++ b/karavan-cloud/karavan-datagrid/src/main/java/org/apache/camel/karavan/datagrid/model/ProjectFile.java
@@ -1,5 +1,6 @@
package org.apache.camel.karavan.datagrid.model;
+import org.infinispan.api.annotations.indexing.Indexed;
import org.infinispan.protostream.annotations.ProtoDoc;
import org.infinispan.protostream.annotations.ProtoFactory;
import org.infinispan.protostream.annotations.ProtoField;
diff --git a/karavan-cloud/karavan-datagrid/src/test/java/org/apache/camel/karavan/datagrid/DevCommandTest.java b/karavan-cloud/karavan-datagrid/src/test/java/org/apache/camel/karavan/datagrid/DataGridTest.java
similarity index 88%
rename from karavan-cloud/karavan-datagrid/src/test/java/org/apache/camel/karavan/datagrid/DevCommandTest.java
rename to karavan-cloud/karavan-datagrid/src/test/java/org/apache/camel/karavan/datagrid/DataGridTest.java
index 8602f589..37c272e4 100644
--- a/karavan-cloud/karavan-datagrid/src/test/java/org/apache/camel/karavan/datagrid/DevCommandTest.java
+++ b/karavan-cloud/karavan-datagrid/src/test/java/org/apache/camel/karavan/datagrid/DataGridTest.java
@@ -6,6 +6,7 @@ import io.quarkus.vertx.ConsumeEvent;
import io.vertx.core.json.JsonObject;
import org.apache.camel.karavan.datagrid.model.CommandName;
import org.apache.camel.karavan.datagrid.model.DevModeCommand;
+import org.apache.camel.karavan.datagrid.model.ProjectFile;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
@@ -20,7 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
@QuarkusTest
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
-public class DevCommandTest {
+public class DataGridTest {
@Inject
DatagridService datagridService;
@@ -39,7 +40,7 @@ public class DevCommandTest {
commandsReceived.add(message.mapTo(DevModeCommand.class));
}
- @Test
+// @Test
public void sendCommand() throws InterruptedException {
List<DevModeCommand> commandsSent = List.of(
new DevModeCommand(CommandName.RUN, Instant.now().toEpochMilli()),
@@ -57,4 +58,9 @@ public class DevCommandTest {
assertEquals(commandsSent.get(2).getCommandName().name(), commandsReceived.get(2).getCommandName().name());
}
+ @Test
+ public void getProjectFiles() throws InterruptedException {
+ List<ProjectFile> files = datagridService.getProjectFiles("xxx");
+ assertEquals(0, files.size());
+ }
}