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 <marat.gubaidul...@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()); + } }