[
https://issues.apache.org/jira/browse/CURATOR-425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16095289#comment-16095289
]
ASF GitHub Bot commented on CURATOR-425:
----------------------------------------
Github user Randgalt commented on a diff in the pull request:
https://github.com/apache/curator/pull/230#discussion_r128618511
--- Diff:
curator-client/src/main/java/org/apache/curator/utils/Compatibility.java ---
@@ -0,0 +1,76 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.curator.utils;
+
+import org.apache.zookeeper.ZooKeeper;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Utils to help with ZK 3.4.x compatibility
+ */
+public class Compatibility
+{
+ private static final boolean hasZooKeeperAdmin;
+ static
+ {
+ boolean hasIt;
+ try
+ {
+ Class.forName("org.apache.zookeeper.admin.ZooKeeperAdmin");
+ hasIt = true;
+ }
+ catch ( ClassNotFoundException e )
+ {
+ hasIt = false;
+ LoggerFactory.getLogger(Compatibility.class).info("Running in
ZooKeeper 3.4.x compatibility mode");
+ }
+ hasZooKeeperAdmin = hasIt;
+ }
+
+ /**
+ * Return true if the classpath ZooKeeper library is 3.4.x
+ *
+ * @return true/false
+ */
+ public static boolean isZK34()
+ {
+ return !hasZooKeeperAdmin;
+ }
+
+ /**
+ * For ZooKeeper 3.5.x, use the supported
<code>zooKeeper.getTestable().injectSessionExpiration()</code>.
+ * For ZooKeeper 3.4.x do the equivalent via reflection
+ *
+ * @param zooKeeper client
+ */
+ public static void injectSessionExpiration(ZooKeeper zooKeeper)
+ {
+ if ( isZK34() )
+ {
+ InjectSessionExpiration.injectSessionExpiration(zooKeeper);
+ }
+ else
+ {
+ // LOL - this method was proposed by me (JZ) in 2013 for
totally unrelated reasons
--- End diff --
I don't appreciate that
> Create ZooKeeper 3.4.x compatibility mode for master branch (Curator 3.x)
> -------------------------------------------------------------------------
>
> Key: CURATOR-425
> URL: https://issues.apache.org/jira/browse/CURATOR-425
> Project: Apache Curator
> Issue Type: Task
> Components: Client, Documentation, Framework, General, Recipes,
> Tests, Website
> Affects Versions: 3.3.0, 2.12.0
> Reporter: Jordan Zimmerman
> Assignee: Jordan Zimmerman
> Fix For: 4.0.0
>
>
> Maintaining the CURATOR-2.0 branch is becoming untenable. Investigate if it's
> possible to have a version of Curator 3.x that works with both ZooKeeper
> 3.5.x and ZooKeeper 3.4.x
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)