Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-14234

NPE when connecting with cli using Hot Rod protocol

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • 14.0.1.Final
    • CLI
    • None

    Description

      Index: server/tests/src/test/java/org/infinispan/server/cli/CliIT.java
      IDEA additional info:
      Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
      <+>UTF-8
      ===================================================================
      diff --git a/server/tests/src/test/java/org/infinispan/server/cli/CliIT.java b/server/tests/src/test/java/org/infinispan/server/cli/HttpCliIT.java
      rename from server/tests/src/test/java/org/infinispan/server/cli/CliIT.java
      rename to server/tests/src/test/java/org/infinispan/server/cli/HttpCliIT.java
      --- a/server/tests/src/test/java/org/infinispan/server/cli/CliIT.java	(revision e543efdd0051ef6616e4996155c1ced60c03bbbe)
      +++ b/server/tests/src/test/java/org/infinispan/server/cli/HttpCliIT.java	(date 1666032240000)
      @@ -9,59 +9,19 @@
       import java.nio.file.Path;
       import java.nio.file.Paths;
       import java.util.Arrays;
      -import java.util.Properties;
       
       import org.aesh.terminal.utils.Config;
       import org.infinispan.cli.commands.CLI;
       import org.infinispan.cli.impl.AeshDelegatingShell;
      -import org.infinispan.commons.test.CommonsTestingUtil;
      -import org.infinispan.commons.util.Util;
      -import org.infinispan.server.test.api.TestUser;
       import org.infinispan.server.test.core.AeshTestConnection;
       import org.infinispan.server.test.core.AeshTestShell;
      -import org.infinispan.server.test.core.Common;
      -import org.infinispan.server.test.core.ServerRunMode;
      -import org.infinispan.server.test.junit4.InfinispanServerRule;
      -import org.infinispan.server.test.junit4.InfinispanServerRuleBuilder;
      -import org.infinispan.server.test.junit4.InfinispanServerTestMethodRule;
      -import org.junit.AfterClass;
      -import org.junit.BeforeClass;
      -import org.junit.ClassRule;
      -import org.junit.Rule;
       import org.junit.Test;
       
       /**
        * @author Tristan Tarrant &lt;tristan@infinispan.org&gt;
        * @since 10.0
        **/
      -public class CliIT {
      -
      -   @ClassRule
      -   public static InfinispanServerRule SERVERS =
      -         InfinispanServerRuleBuilder.config("configuration/AuthorizationImplicitTest.xml")
      -               .mavenArtifacts(Common.NASHORN_DEPS)
      -               .runMode(ServerRunMode.CONTAINER)
      -               .build();
      -
      -   @Rule
      -   public InfinispanServerTestMethodRule SERVER_TEST = new InfinispanServerTestMethodRule(SERVERS);
      -
      -   private static File workingDir;
      -   private static Properties properties;
      -
      -   @BeforeClass
      -   public static void setup() {
      -      workingDir = new File(CommonsTestingUtil.tmpDirectory(CliIT.class));
      -      Util.recursiveFileRemove(workingDir);
      -      workingDir.mkdirs();
      -      properties = new Properties(System.getProperties());
      -      properties.put("cli.dir", workingDir.getAbsolutePath());
      -   }
      -
      -   @AfterClass
      -   public static void teardown() {
      -      Util.recursiveFileRemove(workingDir);
      -   }
      +public class HttpCliIT extends BaseCliIT {
       
          @Test
          public void testCliInteractive() {
      @@ -249,17 +209,6 @@
             }
          }
       
      -   private void connect(AeshTestConnection terminal) {
      -      connect(terminal, TestUser.ADMIN);
      -   }
      -
      -   private void connect(AeshTestConnection terminal, TestUser user) {
      -      // connect
      -      terminal.send("connect -u " + user.getUser() + " -p " + user.getPassword() + " " + hostAddress() + ":11222");
      -      terminal.assertContains("//containers/default]>");
      -      terminal.clear();
      -   }
      -
          @Test
          public void testCliUploadProtobufSchemas() {
             try (AeshTestConnection terminal = new AeshTestConnection()) {
      @@ -333,18 +282,6 @@
             }
          }
       
      -   private String hostAddress() {
      -      return SERVERS.getTestServer().getDriver().getServerAddress(0).getHostAddress();
      -   }
      -
      -   private String connectionUrl() {
      -      return connectionUrl(TestUser.ADMIN);
      -   }
      -
      -   private String connectionUrl(TestUser user) {
      -      return String.format("http://%s:%s@%s:11222", user.getUser(), user.getPassword(), hostAddress());
      -   }
      -
          private File getCliResource(String resource) {
             Path dest = workingDir.toPath().resolve(resource);
             File destFile = dest.toFile();
      @@ -360,4 +297,9 @@
                throw new IllegalStateException(e);
             }
          }
      +
      +   @Override
      +   protected String protocol() {
      +      return "http";
      +   }
       }
      Index: server/tests/src/test/java/org/infinispan/server/cli/BaseCliIT.java
      IDEA additional info:
      Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
      <+>UTF-8
      ===================================================================
      diff --git a/server/tests/src/test/java/org/infinispan/server/cli/BaseCliIT.java b/server/tests/src/test/java/org/infinispan/server/cli/BaseCliIT.java
      new file mode 100644
      --- /dev/null	(date 1666032849439)
      +++ b/server/tests/src/test/java/org/infinispan/server/cli/BaseCliIT.java	(date 1666032849439)
      @@ -0,0 +1,73 @@
      +package org.infinispan.server.cli;
      +
      +import java.io.File;
      +import java.util.Properties;
      +
      +import org.infinispan.commons.test.CommonsTestingUtil;
      +import org.infinispan.commons.util.Util;
      +import org.infinispan.server.test.api.TestUser;
      +import org.infinispan.server.test.core.AeshTestConnection;
      +import org.infinispan.server.test.core.Common;
      +import org.infinispan.server.test.core.ServerRunMode;
      +import org.infinispan.server.test.junit4.InfinispanServerRule;
      +import org.infinispan.server.test.junit4.InfinispanServerRuleBuilder;
      +import org.infinispan.server.test.junit4.InfinispanServerTestMethodRule;
      +import org.junit.AfterClass;
      +import org.junit.BeforeClass;
      +import org.junit.ClassRule;
      +import org.junit.Rule;
      +
      +public abstract class BaseCliIT {
      +
      +   @ClassRule
      +   public static InfinispanServerRule SERVERS =
      +         InfinispanServerRuleBuilder.config("configuration/AuthorizationImplicitTest.xml")
      +               .mavenArtifacts(Common.NASHORN_DEPS)
      +               .runMode(ServerRunMode.CONTAINER)
      +               .build();
      +
      +   @Rule
      +   public InfinispanServerTestMethodRule SERVER_TEST = new InfinispanServerTestMethodRule(SERVERS);
      +
      +   protected static File workingDir;
      +   protected static Properties properties;
      +
      +   @BeforeClass
      +   public static void setup() {
      +      workingDir = new File(CommonsTestingUtil.tmpDirectory(HttpCliIT.class));
      +      Util.recursiveFileRemove(workingDir);
      +      workingDir.mkdirs();
      +      properties = new Properties(System.getProperties());
      +      properties.put("cli.dir", workingDir.getAbsolutePath());
      +   }
      +
      +   @AfterClass
      +   public static void teardown() {
      +      Util.recursiveFileRemove(workingDir);
      +   }
      +
      +   protected void connect(AeshTestConnection terminal) {
      +      connect(terminal, TestUser.ADMIN);
      +   }
      +
      +   protected void connect(AeshTestConnection terminal, TestUser user) {
      +      // connect
      +      terminal.send("connect -u " + user.getUser() + " -p " + user.getPassword() + " " + connectionUrl());
      +      terminal.assertContains("//containers/default]>");
      +      terminal.clear();
      +   }
      +
      +   protected String hostAddress() {
      +      return SERVERS.getTestServer().getDriver().getServerAddress(0).getHostAddress();
      +   }
      +
      +   protected String connectionUrl() {
      +      return connectionUrl(TestUser.ADMIN);
      +   }
      +
      +   protected String connectionUrl(TestUser user) {
      +      return String.format("%s://%s:%s@%s:11222", protocol(), user.getUser(), user.getPassword(), hostAddress());
      +   }
      +
      +   protected abstract String protocol();
      +}
      Index: server/tests/src/test/java/org/infinispan/server/cli/HotRodCliIT.java
      IDEA additional info:
      Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
      <+>UTF-8
      ===================================================================
      diff --git a/server/tests/src/test/java/org/infinispan/server/cli/HotRodCliIT.java b/server/tests/src/test/java/org/infinispan/server/cli/HotRodCliIT.java
      new file mode 100644
      --- /dev/null	(date 1666032849444)
      +++ b/server/tests/src/test/java/org/infinispan/server/cli/HotRodCliIT.java	(date 1666032849444)
      @@ -0,0 +1,24 @@
      +package org.infinispan.server.cli;
      +
      +import org.infinispan.cli.commands.CLI;
      +import org.infinispan.cli.impl.AeshDelegatingShell;
      +import org.infinispan.server.test.core.AeshTestConnection;
      +import org.junit.Test;
      +
      +public class HotRodCliIT extends BaseCliIT {
      +
      +   @Test
      +   public void testHotRod() {
      +      try (AeshTestConnection terminal = new AeshTestConnection()) {
      +         CLI.main(new AeshDelegatingShell(terminal), new String[]{}, properties);
      +
      +         connect(terminal);
      +         terminal.send("stats");
      +      }
      +   }
      +
      +   @Override
      +   protected String protocol() {
      +      return "hotrod";
      +   }
      +}
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            dlovison@redhat.com Diego Lovison
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: