IGNITE-7485 WIP Review.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9ba0d9c1 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9ba0d9c1 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9ba0d9c1 Branch: refs/heads/ignite-7485-2 Commit: 9ba0d9c10f4cc4494ab43502d61f0bb217ee61bc Parents: 5ba5344 Author: Alexey Kuznetsov <[email protected]> Authored: Fri Jan 26 18:19:37 2018 +0700 Committer: Alexey Kuznetsov <[email protected]> Committed: Fri Jan 26 18:19:37 2018 +0700 ---------------------------------------------------------------------- .../internal/client/impl/GridClientImpl.java | 26 +--- .../GridClientConnectionManagerAdapter.java | 11 +- .../connection/GridClientNioTcpConnection.java | 7 +- .../client/router/impl/GridTcpRouterImpl.java | 25 +--- .../ignite/internal/commandline/Arguments.java | 100 ++++++++++++++ .../internal/commandline/CommandHandler.java | 134 +++---------------- .../commandline/CommandHandlerParsingTest.java | 27 ++-- 7 files changed, 139 insertions(+), 191 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9ba0d9c1/modules/core/src/main/java/org/apache/ignite/internal/client/impl/GridClientImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/GridClientImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/GridClientImpl.java index e55a3d0..d045a62 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/GridClientImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/GridClientImpl.java @@ -17,8 +17,6 @@ package org.apache.ignite.internal.client.impl; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.Collection; @@ -70,10 +68,6 @@ import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_MACS; * Client implementation. */ public class GridClientImpl implements GridClient { - /** Enterprise connection manager class name. */ - private static final String ENT_CONN_MGR_CLS = - "org.gridgain.grid.internal.client.impl.connection.GridClientConnectionManagerEntImpl"; - /** Null mask object. */ private static final Object NULL_MASK = new Object(); @@ -445,25 +439,7 @@ public class GridClientImpl implements GridClient { GridClientConfiguration cfg, Collection<InetSocketAddress> routers, GridClientTopology top, @Nullable Byte marshId, boolean routerClient) throws GridClientException { - GridClientConnectionManager mgr; - - try { - Class<?> cls = Class.forName(ENT_CONN_MGR_CLS); - - Constructor<?> cons = cls.getConstructor(UUID.class, SSLContext.class, GridClientConfiguration.class, - Collection.class, GridClientTopology.class, Byte.class, boolean.class); - - mgr = (GridClientConnectionManager)cons.newInstance(clientId, sslCtx, cfg, routers, top, marshId, - routerClient); - } - catch (ClassNotFoundException ignored) { - mgr = new GridClientConnectionManagerOsImpl(clientId, sslCtx, cfg, routers, top, marshId, routerClient); - } - catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { - throw new GridClientException("Failed to create client connection manager.", e); - } - - return mgr; + return new GridClientConnectionManagerOsImpl(clientId, sslCtx, cfg, routers, top, marshId, routerClient); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/9ba0d9c1/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnectionManagerAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnectionManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnectionManagerAdapter.java index aa06322..87980b9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnectionManagerAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnectionManagerAdapter.java @@ -472,7 +472,7 @@ public abstract class GridClientConnectionManagerAdapter implements GridClientCo try { conn = new GridClientNioTcpConnection(srv, clientId, addr, sslCtx, pingExecutor, cfg.getConnectTimeout(), cfg.getPingInterval(), cfg.getPingTimeout(), - cfg.isTcpNoDelay(), marsh, marshId, top, cred, keepBinariesThreadLocal()); + cfg.isTcpNoDelay(), marsh, marshId, top, cred); } catch (GridClientException e) { if (marsh instanceof GridClientZipOptimizedMarshaller) { @@ -482,7 +482,7 @@ public abstract class GridClientConnectionManagerAdapter implements GridClientCo conn = new GridClientNioTcpConnection(srv, clientId, addr, sslCtx, pingExecutor, cfg.getConnectTimeout(), cfg.getPingInterval(), cfg.getPingTimeout(), cfg.isTcpNoDelay(), ((GridClientZipOptimizedMarshaller)marsh).defaultMarshaller(), marshId, - top, cred, keepBinariesThreadLocal()); + top, cred); } else throw e; @@ -506,13 +506,6 @@ public abstract class GridClientConnectionManagerAdapter implements GridClientCo } } - /** - * @return Get thread local used to enable keep binary mode. - */ - protected ThreadLocal<Boolean> keepBinariesThreadLocal() { - return null; - } - /** {@inheritDoc} */ @Override public void terminateConnection(GridClientConnection conn, GridClientNode node, Throwable e) { if (log.isLoggable(Level.FINE)) http://git-wip-us.apache.org/repos/asf/ignite/blob/9ba0d9c1/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientNioTcpConnection.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientNioTcpConnection.java b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientNioTcpConnection.java index 3bedd5f..092d5ca 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientNioTcpConnection.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientNioTcpConnection.java @@ -158,9 +158,6 @@ public class GridClientNioTcpConnection extends GridClientConnection { /** Marshaller. */ private final GridClientMarshaller marsh; - /** */ - private final ThreadLocal<Boolean> keepBinariesMode; - /** * Creates a client facade, tries to connect to remote server, in case of success starts reader thread. * @@ -192,8 +189,7 @@ public class GridClientNioTcpConnection extends GridClientConnection { GridClientMarshaller marsh, Byte marshId, GridClientTopology top, - Object cred, - ThreadLocal<Boolean> keepBinariesMode + Object cred ) throws IOException, GridClientException { super(clientId, srvAddr, sslCtx, top, cred); @@ -202,7 +198,6 @@ public class GridClientNioTcpConnection extends GridClientConnection { this.marsh = marsh; this.pingInterval = pingInterval; this.pingTimeout = pingTimeout; - this.keepBinariesMode = keepBinariesMode; SocketChannel ch = null; Socket sock = null; http://git-wip-us.apache.org/repos/asf/ignite/blob/9ba0d9c1/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterImpl.java index da55ec7..d6daf99 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterImpl.java @@ -18,8 +18,6 @@ package org.apache.ignite.internal.client.router.impl; import java.lang.management.ManagementFactory; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; import java.net.InetAddress; import java.net.UnknownHostException; import java.nio.ByteOrder; @@ -53,9 +51,6 @@ import org.jetbrains.annotations.Nullable; * Wrapper class for router process. */ public class GridTcpRouterImpl implements GridTcpRouter, GridTcpRouterMBean, LifecycleAware { - /** */ - private static final String ENT_NIO_LSNR_CLS = "org.apache.ignite.client.router.impl.GridTcpRouterNioListenerEntImpl"; - /** Id. */ private final UUID id = UUID.randomUUID(); @@ -108,23 +103,7 @@ public class GridTcpRouterImpl implements GridTcpRouter, GridTcpRouterMBean, Lif throw new IgniteException("Failed to initialise embedded client.", e); } - GridNioServerListener<GridClientMessage> lsnr; - - try { - Class<?> cls = Class.forName(ENT_NIO_LSNR_CLS); - - Constructor<?> cons = cls.getDeclaredConstructor(IgniteLogger.class, GridRouterClientImpl.class); - - cons.setAccessible(true); - - lsnr = (GridNioServerListener<GridClientMessage>)cons.newInstance(log, client); - } - catch (ClassNotFoundException ignored) { - lsnr = new GridTcpRouterNioListenerOsImpl(log, client); - } - catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { - throw new IgniteException("Failed to create NIO listener.", e); - } + GridNioServerListener<GridClientMessage> lsnr = new GridTcpRouterNioListenerOsImpl(log, client); parser = new GridTcpRouterNioParser(); @@ -379,4 +358,4 @@ public class GridTcpRouterImpl implements GridTcpRouter, GridTcpRouterMBean, Lif return id.equals(that.id); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/9ba0d9c1/modules/core/src/main/java/org/apache/ignite/internal/commandline/Arguments.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/commandline/Arguments.java b/modules/core/src/main/java/org/apache/ignite/internal/commandline/Arguments.java new file mode 100644 index 0000000..9927333 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/commandline/Arguments.java @@ -0,0 +1,100 @@ +package org.apache.ignite.internal.commandline; + +/** + * Bean with all parsed and validated arguments + */ +class Arguments { + /** Command. */ + private String cmd; + + /** Host. */ + private String host; + + /** Port. */ + private String port; + + /** User. */ + private String user; + + /** Password. */ + private String pwd; + + /** + * Action for baseline command + */ + private String baselineAct; + + /** + * Arguments for baseline command + */ + private String baselineArgs; + + /** + * @param cmd Command. + * @param host Host. + * @param port Port. + * @param user User. + * @param pwd Password. + * @param baselineAct Baseline action. + * @param baselineArgs Baseline args. + */ + public Arguments(String cmd, String host, String port, String user, String pwd, String baselineAct, + String baselineArgs) { + this.cmd = cmd; + this.host = host; + this.port = port; + this.user = user; + this.pwd = pwd; + this.baselineAct = baselineAct; + this.baselineArgs = baselineArgs; + } + + /** + * @return command + */ + public String command() { + return cmd; + } + + /** + * @return host name + */ + public String host() { + return host; + } + + /** + * @return port number + */ + public String port() { + return port; + } + + /** + * @return user name + */ + public String user() { + return user; + } + + /** + * @return password + */ + public String password() { + return pwd; + } + + /** + * @return baseline action + */ + public String baselineAction() { + return baselineAct; + } + + /** + * @return baseline arguments + */ + public String baselineArguments() { + return baselineArgs; + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/9ba0d9c1/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java index 9b10d5c..ecee75c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java @@ -74,17 +74,10 @@ public class CommandHandler { /** */ private static final String CMD_PORT = "--port"; - /** */ - static final String CMD_ACTIVATE = "--activate"; /** */ private static final String CMD_PASSWORD = "--password"; - /** */ - static final String CMD_DEACTIVATE = "--deactivate"; - /** */ - static final String CMD_STATE = "--state"; - /** */ - static final String CMD_BASE_LINE = "--baseline"; + /** */ private static final String CMD_USER = "--user"; @@ -104,6 +97,18 @@ public class CommandHandler { private static final String DELIM = "--------------------------------------------------------------------------------"; /** */ + static final String CMD_ACTIVATE = "--activate"; + + /** */ + static final String CMD_BASE_LINE = "--baseline"; + + /** */ + static final String CMD_DEACTIVATE = "--deactivate"; + + /** */ + static final String CMD_STATE = "--state"; + + /** */ public static final int EXIT_CODE_OK = 0; /** */ @@ -168,7 +173,7 @@ public class CommandHandler { * @param err Error message. * @return Next argument value. */ - private static String nextArg(Iterator<String> it, String err) { + private String nextArg(Iterator<String> it, String err) { if (it.hasNext()) { String arg = it.next(); @@ -182,14 +187,13 @@ public class CommandHandler { } /** - * Parses and validates arguments + * Parses and validates arguments. * - * @param rawArgs array of arguments - * @return Arguments bean + * @param rawArgs array of arguments. + * @return Arguments bean. * @throws IllegalArgumentException in case arguments aren't valid */ - @NotNull static Arguments parseAndValidate(String... rawArgs) { - + @NotNull Arguments parseAndValidate(String... rawArgs) { String host = DFLT_HOST; String port = DFLT_PORT; @@ -667,7 +671,7 @@ public class CommandHandler { break; case CMD_BASE_LINE: - baseline(client, args.baselineAct(), args.baselineArgs()); + baseline(client, args.baselineAction(), args.baselineArguments()); break; } } @@ -696,105 +700,5 @@ public class CommandHandler { System.exit(hnd.execute(args)); } - } -/** - * Bean with all parsed and validated arguments - */ -class Arguments { - - /** Command. */ - private String cmd; - - /** Host. */ - private String host; - - /** Port. */ - private String port; - - /** User. */ - private String user; - - /** Password. */ - private String pwd; - - /** - * Action for baseline command - */ - private String baselineAct; - - /** - * Arguments for baseline command - */ - private String baselineArgs; - - /** - * @param cmd Command. - * @param host Host. - * @param port Port. - * @param user User. - * @param pwd Password. - * @param baselineAct Baseline action. - * @param baselineArgs Baseline args. - */ - public Arguments(String cmd, String host, String port, String user, String pwd, String baselineAct, - String baselineArgs) { - this.cmd = cmd; - this.host = host; - this.port = port; - this.user = user; - this.pwd = pwd; - this.baselineAct = baselineAct; - this.baselineArgs = baselineArgs; - } - - /** - * @return command - */ - public String command() { - return cmd; - } - - /** - * @return host name - */ - public String host() { - return host; - } - - /** - * @return port number - */ - public String port() { - return port; - } - - /** - * @return user name - */ - public String user() { - return user; - } - - /** - * @return password - */ - public String password() { - return pwd; - } - - /** - * @return baseline action - */ - public String baselineAct() { - return baselineAct; - } - - /** - * @return baseline arguments - */ - public String baselineArgs() { - return baselineArgs; - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/9ba0d9c1/modules/core/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java index 1de7b5a..1ba8b3d 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java @@ -29,21 +29,21 @@ import static org.apache.ignite.internal.commandline.CommandHandler.DFLT_HOST; import static org.apache.ignite.internal.commandline.CommandHandler.DFLT_PORT; /** - * Tests Command Handler parsing arguments + * Tests Command Handler parsing arguments. */ public class CommandHandlerParsingTest extends TestCase { - - /** Commands. */ - private String[] Commands = new String[] {CMD_STATE, CMD_ACTIVATE, CMD_DEACTIVATE, CMD_BASE_LINE}; + /** Commands to test. */ + private static final String[] Commands = new String[] {CMD_STATE, CMD_ACTIVATE, CMD_DEACTIVATE, CMD_BASE_LINE}; /** - * test parsing and validation for user and password arguments + * Test parsing and validation for user and password arguments */ public void testParseAndValidateUserAndPassword() { + CommandHandler hnd = new CommandHandler(); for (String cmd : Commands) { try { - CommandHandler.parseAndValidate("--user"); + hnd.parseAndValidate("--user"); fail("expected exception: Expected user name"); } @@ -52,7 +52,7 @@ public class CommandHandlerParsingTest extends TestCase { } try { - CommandHandler.parseAndValidate("--password"); + hnd.parseAndValidate("--password"); fail("expected exception: Expected password"); } @@ -61,7 +61,7 @@ public class CommandHandlerParsingTest extends TestCase { } try { - CommandHandler.parseAndValidate("--user", "testUser", cmd); + hnd.parseAndValidate("--user", "testUser", cmd); fail("expected exception: Both user and password should be specified"); } @@ -70,7 +70,7 @@ public class CommandHandlerParsingTest extends TestCase { } try { - CommandHandler.parseAndValidate("--password", "testPass", cmd); + hnd.parseAndValidate("--password", "testPass", cmd); fail("expected exception: Both user and password should be specified"); } @@ -78,7 +78,7 @@ public class CommandHandlerParsingTest extends TestCase { e.printStackTrace(); } - Arguments args = CommandHandler.parseAndValidate("--user", "testUser", "--password", "testPass", cmd); + Arguments args = hnd.parseAndValidate("--user", "testUser", "--password", "testPass", cmd); assertEquals("testUser", args.user()); assertEquals("testPass", args.password()); @@ -90,22 +90,23 @@ public class CommandHandlerParsingTest extends TestCase { * tests host and port arguments */ public void testHostAndPort() { + CommandHandler hnd = new CommandHandler(); for (String cmd : Commands) { - Arguments args = CommandHandler.parseAndValidate(cmd); + Arguments args = hnd.parseAndValidate(cmd); assertEquals(cmd, args.command()); assertEquals(DFLT_HOST, args.host()); assertEquals(DFLT_PORT, args.port()); - args = CommandHandler.parseAndValidate("--port", "12345", "--host", "test-host", cmd); + args = hnd.parseAndValidate("--port", "12345", "--host", "test-host", cmd); assertEquals(cmd, args.command()); assertEquals("test-host", args.host()); assertEquals("12345", args.port()); try { - CommandHandler.parseAndValidate("--port", "wrong-port", cmd); + hnd.parseAndValidate("--port", "wrong-port", cmd); fail("expected exception: Invalid value for port:"); }
