Skip to content

PHOENIX-6523: Support for HRpc connection protocol through JDBC URL - #1280

Closed
rxmie24 wants to merge 20 commits into
apache:masterfrom
rxmie24:wutz-crackin
Closed

PHOENIX-6523: Support for HRpc connection protocol through JDBC URL#1280
rxmie24 wants to merge 20 commits into
apache:masterfrom
rxmie24:wutz-crackin

Conversation

@rxmie24

@rxmie24rxmie24 commented Aug 4, 2021

Copy link
Copy Markdown
Contributor

HBase now supports a zookeeper-less connection strategy using a Master Registry implementation. For this to work through Phoenix, we need to set a list host:ports of the HMaster quorum

<property>
<name>hbase.masters</name>
<value>master1:16000,master2:16001,master3:16000</value>
</property>

To support opting into this from a Phoenix connection URL, we can introduce a "connector type" as follows:

jdbc:phoenix+zk:hostname1,2,3...:<properties> jdbc:phoenix+hrpc:hostname1,2,3...:<properties>

Above are examples of opting into hrpc/zk registry implementations of HBase.

If no connector is specified, the Phoenix driver will default to a Zookeeper-based connection as it's always been doing prior to this. If an invalid connector type is specified, we throw a MalformedUrlException, similarly if there's a + char but the connector type is empty.

@stoty

stoty commented Aug 9, 2021

Copy link
Copy Markdown
Contributor

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec6m 22sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 1 new or modified test files.
_ master Compile Tests _
+1 💚mvninstall21m 37smaster passed
+0hbaserecompile28m 38sHBase recompiled.
+1 💚compile1m 2smaster passed
+1 💚checkstyle1m 15smaster passed
+1 💚javadoc0m 52smaster passed
+0 🆗spotbugs3m 7sphoenix-core in master has 973 extant spotbugs warnings.
_ Patch Compile Tests _
-1 ❌mvninstall0m 31sroot in the patch failed.
+0hbaserecompile9m 58sHBase recompiled.
-1 ❌compile0m 20sphoenix-core in the patch failed.
-1 ❌javac0m 20sphoenix-core in the patch failed.
-1 ❌checkstyle1m 16sphoenix-core: The patch generated 24 new + 737 unchanged - 15 fixed = 761 total (was 752)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚javadoc0m 50sthe patch passed
-1 ❌spotbugs0m 19sphoenix-core in the patch failed.
_ Other Tests _
-1 ❌unit0m 19sphoenix-core in the patch failed.
+1 💚asflicense0m 16sThe patch does not generate ASF License warnings.
52m 34s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#1280
JIRA IssuePHOENIX-6523
Optional Testsdupname asflicense javac javadoc unit spotbugs hbaserebuild hbaseanti checkstyle compile
unameLinux 823e64d1ba6c 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev/phoenix-personality.sh
git revisionmaster / c4d297d
Default JavaPrivate Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08
mvninstallhttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/2/artifact/yetus-general-check/output/patch-mvninstall-root.txt
compilehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/2/artifact/yetus-general-check/output/patch-compile-phoenix-core.txt
javachttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/2/artifact/yetus-general-check/output/patch-compile-phoenix-core.txt
checkstylehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/2/artifact/yetus-general-check/output/diff-checkstyle-phoenix-core.txt
spotbugshttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/2/artifact/yetus-general-check/output/patch-spotbugs-phoenix-core.txt
unithttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/2/artifact/yetus-general-check/output/patch-unit-phoenix-core.txt
Test Resultshttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/2/testReport/
Max. process+thread count96 (vs. ulimit of 30000)
modulesC: phoenix-core U: phoenix-core
Console outputhttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/2/console
versionsgit=2.7.4 maven=3.3.9 spotbugs=4.1.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

import org.apache.phoenix.thirdparty.com.google.common.collect.Maps;
import javax.annotation.concurrent.Immutable;
import java.io.IOException;
import java.sql.*;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not use import * in phoenix code guidelines, you can use our eclipse template or similar.

this(zookeeperQuorum, port, rootNode, principal, keytab, null);
}

public ConnectionInfo(String zookeeperQuorum, Integer port, String rootNode, String principal, String keytab, String bootstrap) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we consider a parsed Enum or was there a reason you used a String for bootstrap?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Been writing a lot of Python lately. whats an enum?

public static final String HBASE_CLIENT_KEYTAB = "hbase.myclient.keytab";
public static final String HBASE_CLIENT_PRINCIPAL = "hbase.myclient.principal";

public static final String HBASE_MASTERS = "hbase.masters";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this defined already in a publicly facing hbase module? If so can we directly include it via hbase compat or similar?

import java.sql.DriverManager;
import java.sql.SQLException;

import static org.junit.Assert.*;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • import again

@stoty

Copy link
Copy Markdown
Contributor

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 4sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 1 new or modified test files.
_ master Compile Tests _
+1 💚mvninstall24m 13smaster passed
+0hbaserecompile31m 12sHBase recompiled.
+1 💚compile1m 5smaster passed
+1 💚checkstyle1m 13smaster passed
+1 💚javadoc0m 51smaster passed
+0 🆗spotbugs3m 26sphoenix-core in master has 973 extant spotbugs warnings.
_ Patch Compile Tests _
+1 💚mvninstall16m 53sthe patch passed
+0hbaserecompile27m 22sHBase recompiled.
+1 💚compile1m 5sthe patch passed
+1 💚javac1m 5sthe patch passed
-1 ❌checkstyle1m 14sphoenix-core: The patch generated 33 new + 727 unchanged - 25 fixed = 760 total (was 752)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚javadoc0m 51sthe patch passed
+1 💚spotbugs3m 38sthe patch passed
_ Other Tests _
-1 ❌unit117m 50sphoenix-core in the patch failed.
+1 💚asflicense0m 34sThe patch does not generate ASF License warnings.
190m 58s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/3/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#1280
JIRA IssuePHOENIX-6523
Optional Testsdupname asflicense javac javadoc unit spotbugs hbaserebuild hbaseanti checkstyle compile
unameLinux 5da2aa6dfc67 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev/phoenix-personality.sh
git revisionmaster / c4d297d
Default JavaPrivate Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08
checkstylehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/3/artifact/yetus-general-check/output/diff-checkstyle-phoenix-core.txt
unithttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/3/artifact/yetus-general-check/output/patch-unit-phoenix-core.txt
Test Resultshttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/3/testReport/
Max. process+thread count11607 (vs. ulimit of 30000)
modulesC: phoenix-core U: phoenix-core
Console outputhttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/3/console
versionsgit=2.7.4 maven=3.3.9 spotbugs=4.1.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Comment threadphoenix-core/src/main/java/org/apache/phoenix/util/PhoenixRuntime.java Outdated
@stoty

Copy link
Copy Markdown
Contributor

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 1sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 1 new or modified test files.
_ master Compile Tests _
+1 💚mvninstall21m 57smaster passed
+0hbaserecompile28m 49sHBase recompiled.
+1 💚compile1m 2smaster passed
+1 💚checkstyle1m 14smaster passed
+1 💚javadoc0m 51smaster passed
+0 🆗spotbugs3m 7sphoenix-core in master has 973 extant spotbugs warnings.
_ Patch Compile Tests _
+1 💚mvninstall13m 30sthe patch passed
+0hbaserecompile25m 52sHBase recompiled.
+1 💚compile1m 3sthe patch passed
+1 💚javac1m 3sthe patch passed
-1 ❌checkstyle1m 14sphoenix-core: The patch generated 20 new + 735 unchanged - 17 fixed = 755 total (was 752)
-1 ❌whitespace0m 0sThe patch 2 line(s) with tabs.
+1 💚javadoc0m 49sthe patch passed
+1 💚spotbugs3m 15sthe patch passed
_ Other Tests _
+1 💚unit119m 13sphoenix-core in the patch passed.
+1 💚asflicense0m 17sThe patch does not generate ASF License warnings.
186m 0s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/4/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#1280
JIRA IssuePHOENIX-6523
Optional Testsdupname asflicense javac javadoc unit spotbugs hbaserebuild hbaseanti checkstyle compile
unameLinux edf46d24c8ec 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev/phoenix-personality.sh
git revisionmaster / c4d297d
Default JavaPrivate Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08
checkstylehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/4/artifact/yetus-general-check/output/diff-checkstyle-phoenix-core.txt
whitespacehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/4/artifact/yetus-general-check/output/whitespace-tabs.txt
Test Resultshttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/4/testReport/
Max. process+thread count7332 (vs. ulimit of 30000)
modulesC: phoenix-core U: phoenix-core
Console outputhttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/4/console
versionsgit=2.7.4 maven=3.3.9 spotbugs=4.1.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@stoty

Copy link
Copy Markdown
Contributor

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec6m 45sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 1 new or modified test files.
_ master Compile Tests _
+1 💚mvninstall24m 27smaster passed
+0hbaserecompile36m 48sHBase recompiled.
+1 💚compile1m 7smaster passed
+1 💚checkstyle1m 11smaster passed
+1 💚javadoc0m 54smaster passed
+0 🆗spotbugs3m 30sphoenix-core in master has 973 extant spotbugs warnings.
_ Patch Compile Tests _
+1 💚mvninstall16m 41sthe patch passed
+0hbaserecompile33m 6sHBase recompiled.
+1 💚compile1m 3sthe patch passed
+1 💚javac1m 3sthe patch passed
-1 ❌checkstyle1m 13sphoenix-core: The patch generated 29 new + 725 unchanged - 27 fixed = 754 total (was 752)
-1 ❌whitespace0m 0sThe patch 2 line(s) with tabs.
+1 💚javadoc0m 52sthe patch passed
+1 💚spotbugs3m 31sthe patch passed
_ Other Tests _
-1 ❌unit116m 43sphoenix-core in the patch failed.
+1 💚asflicense0m 35sThe patch does not generate ASF License warnings.
206m 49s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/5/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#1280
JIRA IssuePHOENIX-6523
Optional Testsdupname asflicense javac javadoc unit spotbugs hbaserebuild hbaseanti checkstyle compile
unameLinux 119635c75cbf 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev/phoenix-personality.sh
git revisionmaster / c4d297d
Default JavaPrivate Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08
checkstylehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/5/artifact/yetus-general-check/output/diff-checkstyle-phoenix-core.txt
whitespacehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/5/artifact/yetus-general-check/output/whitespace-tabs.txt
unithttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/5/artifact/yetus-general-check/output/patch-unit-phoenix-core.txt
Test Resultshttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/5/testReport/
Max. process+thread count12703 (vs. ulimit of 30000)
modulesC: phoenix-core U: phoenix-core
Console outputhttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/5/console
versionsgit=2.7.4 maven=3.3.9 spotbugs=4.1.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@joshelser

Copy link
Copy Markdown
Member
jdbc:phoenix+zk:hostname1,2,3...:<properties> jdbc:phoenix+hrpc:hostname1,2,3...:<properties>

What is "hrpc" supposed to stand for in this case? I would think "masters" or "registry" might be more clear?

I think the problem here is that @bharathv built the "default" implementation to be pluggable. While this is nice, do we have any expectations to support any possible mechanism? It would be helpful (for me, a reviewer) to understand what is in scope and what's out of scope. I'm assuming you don't want to try to support any registry, but it might be a good idea to keep that in mind so as to not code ourselves into a corner.

@joshelserjoshelser left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The enum definitely cleans things up a little, but I think going a little farther to add interface and implementations for ZK and MasterRegistry (and how to parse the rest of the URL, then connect to HBase using that implementation) would go a very long way to clean up PhoenixEmbeddedDriver.


// ex: +hrpc:hostname1....
if (url.startsWith(String.valueOf(PhoenixRuntime.JDBC_PROTOCOL_CONNECTOR_PREFIX))) {
final String firstToken = url.split(String.valueOf(PhoenixRuntime.JDBC_PROTOCOL_SEPARATOR))[0];

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest not using String.split(String) as this ends up being a regex operation.

Please use int offset = url.indexOf(PhoenixRuntime.JDBC_PROTOCOL_SEPARATOR) and url.subString(0, offset) to extract the first piece (or use a tokenizer like elsewhere in this file).

Comment on lines +578 to +579
if (this.isHRPCBootstrap() && getQuorum() != null) {
final String[] masters = getQuorum().split(",");

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While the enum suggestion is cleaner, I think pushing this "bootstrapping" into separate classes for each implementation is a pretty standard object-oriented pattern to follow. (e.g. make an interface for PhoenixRuntimeBootstrap with two implementations: one for ZK and one for MasterRegistry).

PhoenixEmbeddedDriver.java is a big mess already and I think pushing even more logic into it will make it worse.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1.

@bharathvbharathv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is "hrpc" supposed to stand for in this case? I would think "masters" or "registry" might be more clear?

@joshelser I think its short for "hbase rpc". You are probably aware of this discussion [1] that suggests moving the registry hosting out of masters and instead do it in region servers as a part of split meta work. The intent is to not keep masters inline with the RW path. So doing "masters" may not be a good idea in the long term. The new implementation calls it "RpcConnectionRegistry" / "RegionServerRpcConnectionRegistry" depending on the direction we take. But I agree with your point that "hrpc" is a bit opaque.

How about "phoenix+zkregistry" or "phoenix+hbaserpcregistry" ?

[1] https://lists.apache.org/thread.html/r3670af8f9617f462c720463c4cd0cee0e89813cba1507ff2807a12a8%40%3Cdev.hbase.apache.org%3E

Comment on lines +578 to +579
if (this.isHRPCBootstrap() && getQuorum() != null) {
final String[] masters = getQuorum().split(",");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1.

@rxmie24

Copy link
Copy Markdown
ContributorAuthor

to understand what is in scope and what's out of scope

The scope right now is to support HBase registry if specified or else always default to ZK. I think the most important thing here is to ensure there's no regression to existing connections. This HRpc thing should be treated as an opt-in, else we should preserve the same behaviour as before.

I'm assuming you don't want to try to support any registry, but it might be a good idea to keep that in mind so as to not code ourselves into a corner.

I think using some OOP to clean the classes up as you suggested is a good foundation to set for other registries down the road

@stoty

Copy link
Copy Markdown
Contributor

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec5m 38sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 1 new or modified test files.
_ master Compile Tests _
+1 💚mvninstall24m 19smaster passed
+0hbaserecompile31m 26sHBase recompiled.
+1 💚compile1m 8smaster passed
+1 💚checkstyle1m 15smaster passed
+1 💚javadoc0m 52smaster passed
+0 🆗spotbugs3m 20sphoenix-core in master has 972 extant spotbugs warnings.
_ Patch Compile Tests _
+1 💚mvninstall16m 36sthe patch passed
+0hbaserecompile27m 14sHBase recompiled.
+1 💚compile1m 7sthe patch passed
+1 💚javac1m 7sthe patch passed
-1 ❌checkstyle1m 20sphoenix-core: The patch generated 36 new + 735 unchanged - 17 fixed = 771 total (was 752)
-1 ❌whitespace0m 0sThe patch 2 line(s) with tabs.
+1 💚javadoc0m 57sthe patch passed
+1 💚spotbugs4m 11sthe patch passed
_ Other Tests _
-1 ❌unit122m 8sphoenix-core in the patch failed.
-1 ❌asflicense0m 34sThe patch generated 5 ASF License warnings.
200m 52s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/6/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#1280
JIRA IssuePHOENIX-6523
Optional Testsdupname asflicense javac javadoc unit spotbugs hbaserebuild hbaseanti checkstyle compile
unameLinux edb51fb2019d 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev/phoenix-personality.sh
git revisionmaster / bfc4621
Default JavaPrivate Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08
checkstylehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/6/artifact/yetus-general-check/output/diff-checkstyle-phoenix-core.txt
whitespacehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/6/artifact/yetus-general-check/output/whitespace-tabs.txt
unithttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/6/artifact/yetus-general-check/output/patch-unit-phoenix-core.txt
Test Resultshttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/6/testReport/
asflicensehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/6/artifact/yetus-general-check/output/patch-asflicense-problems.txt
Max. process+thread count11315 (vs. ulimit of 30000)
modulesC: phoenix-core U: phoenix-core
Console outputhttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/6/console
versionsgit=2.7.4 maven=3.3.9 spotbugs=4.1.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@stoty

Copy link
Copy Markdown
Contributor

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 3sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 1 new or modified test files.
_ master Compile Tests _
+1 💚mvninstall24m 13smaster passed
+0hbaserecompile31m 58sHBase recompiled.
+1 💚compile1m 5smaster passed
+1 💚checkstyle1m 16smaster passed
+1 💚javadoc0m 52smaster passed
+0 🆗spotbugs3m 20sphoenix-core in master has 972 extant spotbugs warnings.
_ Patch Compile Tests _
+1 💚mvninstall16m 46sthe patch passed
+0hbaserecompile27m 37sHBase recompiled.
+1 💚compile1m 6sthe patch passed
+1 💚javac1m 6sthe patch passed
-1 ❌checkstyle1m 14sphoenix-core: The patch generated 35 new + 735 unchanged - 17 fixed = 770 total (was 752)
-1 ❌whitespace0m 0sThe patch 2 line(s) with tabs.
+1 💚javadoc0m 53sthe patch passed
+1 💚spotbugs3m 33sthe patch passed
_ Other Tests _
+1 💚unit118m 2sphoenix-core in the patch passed.
-1 ❌asflicense0m 14sThe patch generated 5 ASF License warnings.
190m 7s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/7/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#1280
JIRA IssuePHOENIX-6523
Optional Testsdupname asflicense javac javadoc unit spotbugs hbaserebuild hbaseanti checkstyle compile
unameLinux ba856428ad27 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev/phoenix-personality.sh
git revisionmaster / bfc4621
Default JavaPrivate Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08
checkstylehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/7/artifact/yetus-general-check/output/diff-checkstyle-phoenix-core.txt
whitespacehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/7/artifact/yetus-general-check/output/whitespace-tabs.txt
Test Resultshttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/7/testReport/
asflicensehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/7/artifact/yetus-general-check/output/patch-asflicense-problems.txt
Max. process+thread count10727 (vs. ulimit of 30000)
modulesC: phoenix-core U: phoenix-core
Console outputhttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/7/console
versionsgit=2.7.4 maven=3.3.9 spotbugs=4.1.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@rxmie24

Copy link
Copy Markdown
ContributorAuthor

@stoty the links to checkstyle/whitespaces are missing

Also @joshelser I split and moved the parsing logic into classes

@stoty

Copy link
Copy Markdown
Contributor

@ramatronics the build artifacts are cleaned up aggressively in a fews days, as the jenkins hosts have little storage.
You need to trigger a rebuild (or just run those checks locally).

@rxmie24

Copy link
Copy Markdown
ContributorAuthor

Jenkins test this please

@rxmie24
rxmie24 requested review from joshelser and stotyAugust 31, 2021 02:14

import javax.annotation.concurrent.Immutable;

import org.apache.phoenix.jdbc.bootstrapz.HBaseRegistryBootstrap;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we have just org.apache.phoenix.jdbc.bootstrap. ?
We generally don't use plurals in package names

@@ -0,0 +1,44 @@
package org.apache.phoenix.jdbc.bootstrapz;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that moving parameter parsing to the bootstrap module, and having an API like:

BootstrapRegistry bs = BootstrapFactory.fromURL(String URL);
Map connpProps = bs.generateConnectionProps();
bs.toString()
bs.getZookeperQuorum() (which fails for HRpc)
bs.equals(), bs.hashMap()

would be a better encapsulation, and simplify code.

WDYT @joshelser (as this was originally your suggestion) ?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It gets a little tricky because the URL is mutated accordingly to tokenize later if there's a +; and we'd be moving that logic into the fromURL method. Also we'd have to move the MalformedUrlException class into its own package to avoid a circular dependency.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moving MalformedUrlException to a seprate file is not a problem.

Also the I think that the URL without the boostrap info could be returned as

BootstrapRegistry bs = BootstrapFactory.fromURL(String URL);
Map connpProps = bs.generateConnectionProps();
url = bs.getRemainingURL();

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stoty check out the updates. I don't think it makes sense to persist the URL in the bootstrap. There's no reason for the BootstrapRegistry object to keep the context of the URL... so I ended up creating a factory method that parses the URL, and spits out a BootstrapRegistry along with the remaining URL in a tuple format.

Let me know if that looks good I'll get started on the integration test with the mini cluster.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't want to hold up the patch, but the current solution feels like the worst of both worlds, as it adds a lots of complexity without removing any.

Classic OO principles say that you should encapsulate your code and data in a class.
The current stateless solution is not worth it. It relies on the fact the state for the ZK and HRpp connections are named similarly, and can be stored in the same variables, but is a bad abstraction.

IMO either just fold back the code into the main class, and save the hassle of using registries, or use stateful registry classes with proper data encapsulation as I suggested above.

@joshelser@yanxinyi what's your take on this ?

@rxmie24rxmie24Sep 24, 2021

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current stateless solution is not worth it.

you should encapsulate your code and data in a class.

I guess I'm failing to see the opportunity here for encapsulating the code/data. My original intent was to abstract the interface for generateConnectionProps and the logic each registry has for it. Doesn't necessarily mean we have to feed it some data to abstract as well. Sure maybe down the road, it may make sense to move more data from PhoenixEmbeddedDriver into these registry classes as per need... but I don't think any of these classes require context from the URL after being created for the current use case.

relies on the fact the state for the ZK and HRpp connections are named similarly

How? Was hoping to rely on the fact that unique ZK and HRpc identifiers can be parsed into a discrete set of enums. They essentially provide translation of the string value from the conn string to an enum which we then parse into the actual class of the registry. We can eliminate the enum and just add straight string comparisons, but regardless we need to check the protocol string specified in the connection URL.


import static org.apache.phoenix.thirdparty.com.google.common.base.Preconditions.checkNotNull;
import static org.apache.phoenix.thirdparty.com.google.common.base.Preconditions.checkArgument;
import static org.apache.phoenix.thirdparty.com.google.common.collect.Sets.newHashSet;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems to be unused imports.

@stoty

Copy link
Copy Markdown
Contributor

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec6m 54sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 1 new or modified test files.
_ master Compile Tests _
+1 💚mvninstall30m 3smaster passed
+0hbaserecompile39m 23sHBase recompiled.
+1 💚compile1m 5smaster passed
+1 💚checkstyle1m 15smaster passed
+1 💚javadoc0m 54smaster passed
+0 🆗spotbugs3m 22sphoenix-core in master has 972 extant spotbugs warnings.
_ Patch Compile Tests _
+1 💚mvninstall16m 49sthe patch passed
+0hbaserecompile29m 49sHBase recompiled.
+1 💚compile1m 7sthe patch passed
+1 💚javac1m 7sthe patch passed
-1 ❌checkstyle1m 16sphoenix-core: The patch generated 35 new + 735 unchanged - 17 fixed = 770 total (was 752)
-1 ❌whitespace0m 0sThe patch 2 line(s) with tabs.
+1 💚javadoc0m 51sthe patch passed
+1 💚spotbugs3m 32sthe patch passed
_ Other Tests _
-1 ❌unit116m 15sphoenix-core in the patch failed.
-1 ❌asflicense0m 34sThe patch generated 5 ASF License warnings.
205m 54s
ReasonTests
Failed junit testsphoenix.end2end.UpsertSelectIT
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/8/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#1280
JIRA IssuePHOENIX-6523
Optional Testsdupname asflicense javac javadoc unit spotbugs hbaserebuild hbaseanti checkstyle compile
unameLinux 43818037d335 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev/phoenix-personality.sh
git revisionmaster / 9dfb423
Default JavaPrivate Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08
checkstylehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/8/artifact/yetus-general-check/output/diff-checkstyle-phoenix-core.txt
whitespacehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/8/artifact/yetus-general-check/output/whitespace-tabs.txt
unithttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/8/artifact/yetus-general-check/output/patch-unit-phoenix-core.txt
Test Resultshttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/8/testReport/
asflicensehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/8/artifact/yetus-general-check/output/patch-asflicense-problems.txt
Max. process+thread count11682 (vs. ulimit of 30000)
modulesC: phoenix-core U: phoenix-core
Console outputhttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/8/console
versionsgit=2.7.4 maven=3.3.9 spotbugs=4.1.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@stoty

Copy link
Copy Markdown
Contributor

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec5m 56sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 1 new or modified test files.
_ master Compile Tests _
+1 💚mvninstall24m 2smaster passed
+0hbaserecompile31m 7sHBase recompiled.
+1 💚compile1m 5smaster passed
+1 💚checkstyle1m 14smaster passed
+1 💚javadoc0m 52smaster passed
+0 🆗spotbugs3m 23sphoenix-core in master has 972 extant spotbugs warnings.
-0 ⚠️patch3m 32sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+1 💚mvninstall16m 44sthe patch passed
+0hbaserecompile27m 5sHBase recompiled.
+1 💚compile1m 4sthe patch passed
+1 💚javac1m 4sthe patch passed
-1 ❌checkstyle1m 14sphoenix-core: The patch generated 36 new + 735 unchanged - 17 fixed = 771 total (was 752)
-1 ❌whitespace0m 0sThe patch 4 line(s) with tabs.
+1 💚javadoc0m 51sthe patch passed
+1 💚spotbugs3m 30sthe patch passed
_ Other Tests _
-1 ❌unit161m 56sphoenix-core in the patch failed.
-1 ❌asflicense0m 14sThe patch generated 5 ASF License warnings.
237m 53s
ReasonTests
Failed junit testsphoenix.mapreduce.util.PhoenixConfigurationUtilTest
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/9/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#1280
JIRA IssuePHOENIX-6523
Optional Testsdupname asflicense javac javadoc unit spotbugs hbaserebuild hbaseanti checkstyle compile
unameLinux 8979c3c1e2f9 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev/phoenix-personality.sh
git revisionmaster / 19b2260
Default JavaPrivate Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08
checkstylehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/9/artifact/yetus-general-check/output/diff-checkstyle-phoenix-core.txt
whitespacehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/9/artifact/yetus-general-check/output/whitespace-tabs.txt
unithttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/9/artifact/yetus-general-check/output/patch-unit-phoenix-core.txt
Test Resultshttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/9/testReport/
asflicensehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/9/artifact/yetus-general-check/output/patch-asflicense-problems.txt
Max. process+thread count432 (vs. ulimit of 30000)
modulesC: phoenix-core U: phoenix-core
Console outputhttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/9/console
versionsgit=2.7.4 maven=3.3.9 spotbugs=4.1.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@rxmie24
rxmie24 requested a review from stotySeptember 11, 2021 01:07
@stoty

Copy link
Copy Markdown
Contributor

Looking at the code, I'd expect PhoenixEmbeddedDriver.ConnectionInfo.normalize() to fail for Hrpc connections.
Could you add an Integration Test to check that the Hrpc connections work (i.e. starting a minicluster and connecting to it with HRPC) ?

@@ -0,0 +1,32 @@
package org.apache.phoenix.jdbc.bootstrap;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: apache license header

@@ -0,0 +1,13 @@
package org.apache.phoenix.jdbc.bootstrap;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above and rest of new files, plz add apache license header

"phoenix.query.server.orderBy.spooling.enabled";
public static final String HBASE_CLIENT_KEYTAB = "hbase.myclient.keytab";
public static final String HBASE_CLIENT_PRINCIPAL = "hbase.myclient.principal";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: remove empty line

import org.apache.phoenix.thirdparty.org.apache.commons.cli.ParseException;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HBaseConfiguration;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unused import?

@stoty

Copy link
Copy Markdown
Contributor

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec5m 53sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 1 new or modified test files.
_ master Compile Tests _
+1 💚mvninstall21m 22smaster passed
+0hbaserecompile28m 3sHBase recompiled.
+1 💚compile1m 5smaster passed
+1 💚checkstyle1m 15smaster passed
+1 💚javadoc0m 51smaster passed
+0 🆗spotbugs3m 6sphoenix-core in master has 972 extant spotbugs warnings.
-0 ⚠️patch3m 15sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+1 💚mvninstall13m 25sthe patch passed
+0hbaserecompile23m 12sHBase recompiled.
+1 💚compile1m 5sthe patch passed
+1 💚javac1m 5sthe patch passed
-1 ❌checkstyle1m 15sphoenix-core: The patch generated 48 new + 734 unchanged - 18 fixed = 782 total (was 752)
-1 ❌whitespace0m 0sThe patch 4 line(s) with tabs.
+1 💚javadoc0m 52sthe patch passed
-1 ❌spotbugs3m 21sphoenix-core generated 1 new + 972 unchanged - 0 fixed = 973 total (was 972)
_ Other Tests _
-1 ❌unit161m 45sphoenix-core in the patch failed.
-1 ❌asflicense0m 16sThe patch generated 7 ASF License warnings.
230m 39s
ReasonTests
FindBugsmodule:phoenix-core
Class org.apache.phoenix.jdbc.MalformedUrlException is not derived from an Exception, even though it is named as such At MalformedUrlException.java:from an Exception, even though it is named as such At MalformedUrlException.java:[lines 8-15]
Failed junit testsphoenix.mapreduce.util.PhoenixConfigurationUtilTest
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/10/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#1280
JIRA IssuePHOENIX-6523
Optional Testsdupname asflicense javac javadoc unit spotbugs hbaserebuild hbaseanti checkstyle compile
unameLinux 03f2c05daf9d 4.15.0-156-generic #163-Ubuntu SMP Thu Aug 19 23:31:58 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev/phoenix-personality.sh
git revisionmaster / f606289
Default JavaPrivate Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08
checkstylehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/10/artifact/yetus-general-check/output/diff-checkstyle-phoenix-core.txt
whitespacehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/10/artifact/yetus-general-check/output/whitespace-tabs.txt
spotbugshttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/10/artifact/yetus-general-check/output/new-spotbugs-phoenix-core.html
unithttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/10/artifact/yetus-general-check/output/patch-unit-phoenix-core.txt
Test Resultshttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/10/testReport/
asflicensehttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/10/artifact/yetus-general-check/output/patch-asflicense-problems.txt
Max. process+thread count486 (vs. ulimit of 30000)
modulesC: phoenix-core U: phoenix-core
Console outputhttps://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1280/10/console
versionsgit=2.7.4 maven=3.3.9 spotbugs=4.1.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


import javax.annotation.concurrent.Immutable;

import org.apache.phoenix.jdbc.bootstrap.*;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

plz avoid to used import *

@rxmie24

Copy link
Copy Markdown
ContributorAuthor

I moved Registry context to a separate package. I think it covers @joshelser's ask of starting to clean up the PhoenixEmbeddedDriver. It's an in-between to where we want to be ideally (@stoty as you pointed out here) vs what we can do now realistically.

Created a class called EmbeddedDriverContext to pass between the EmbeddedDriver and the Registry classes. I tagged in comments with the 🥴 emoji places where the context is passed back and forth (unnecessarily perhaps) - so let me know if we should make any changes there.

I think an integration test would really help here so I'm going to get started on that.

CC: @dbwong@yanxinyi@virajjasani@apurtell

@virajjasani
virajjasani self-requested a review November 17, 2021 09:25
@joshelser
joshelser removed their request for review May 26, 2023 22:29
@stoty

stoty commented Jan 2, 2024

Copy link
Copy Markdown
Contributor

A havily modified version of this already been merged.
I suggest closing this one, @ramatronics .

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@rxmie24@stoty@joshelser@bharathv@yanxinyi@dbwong@richardantal