Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ public void testRetryLoopWithFailure() throws Exception
}
}

assertTrue(loopCount >= 2);
assertTrue(loopCount >= 2, "Unexpected loop count " + loopCount);
}
finally
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -658,7 +658,7 @@ public void stateChanged(CuratorFramework client, ConnectionState newState)
@Test
public void testFailure() throws Exception
{
CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), 100, 100, new RetryOneTime(1));
CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), 20000, 100, new RetryOneTime(1));
client.start();
try
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,15 @@
import org.apache.curator.utils.CloseableUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

import java.util.Iterator;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

@Disabled
public class TestReadOnly extends BaseClassForTests
{
@BeforeEach
Expand Down
2 changes: 1 addition & 1 deletion curator-framework/src/test/resources/log4j.properties
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# under the License.
#

log4j.rootLogger=ERROR, console
log4j.rootLogger=INFO, console

log4j.logger.org.apache.curator=DEBUG, console
log4j.additivity.org.apache.curator=false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,69 +33,71 @@
import java.util.Properties;

@SuppressWarnings("UnusedDeclaration")
public class QuorumConfigBuilder implements Closeable
{
public class QuorumConfigBuilder implements Closeable {
private final ImmutableList<InstanceSpec> instanceSpecs;
private final boolean fromRandom;
private final File fakeConfigFile;

public QuorumConfigBuilder(Collection<InstanceSpec> specs)
{
public QuorumConfigBuilder(Collection<InstanceSpec> specs) {
this(specs.toArray(new InstanceSpec[0]));
}

public QuorumConfigBuilder(InstanceSpec... specs)
{
public QuorumConfigBuilder(InstanceSpec... specs) {
fromRandom = (specs == null) || (specs.length == 0);
instanceSpecs = fromRandom ? ImmutableList.of(InstanceSpec.newInstanceSpec()) : ImmutableList.copyOf(specs);
File fakeConfigFile = null;
try
{
try {
fakeConfigFile = File.createTempFile("temp", "temp");
}
catch ( IOException e )
{
} catch (IOException e) {
Throwables.propagate(e);
}
this.fakeConfigFile = fakeConfigFile;
}

public boolean isFromRandom()
{
public boolean isFromRandom() {
return fromRandom;
}

public QuorumPeerConfig buildConfig() throws Exception
{
public QuorumPeerConfig buildConfig() throws Exception {
return buildConfig(0);
}

public InstanceSpec getInstanceSpec(int index)
{
public InstanceSpec getInstanceSpec(int index) {
return instanceSpecs.get(index);
}

public List<InstanceSpec> getInstanceSpecs()
{
public List<InstanceSpec> getInstanceSpecs() {
return instanceSpecs;
}

public int size()
{
public int size() {
return instanceSpecs.size();
}

@Override
public void close()
{
if ( fakeConfigFile != null )
{
public void close() {
if (fakeConfigFile != null) {
//noinspection ResultOfMethodCallIgnored
fakeConfigFile.delete();
}
}

public QuorumPeerConfig buildConfig(int instanceIndex) throws Exception
public QuorumPeerConfig buildConfig(int instanceIndex) throws Exception {
Properties properties = buildRawConfig(instanceIndex);
QuorumPeerConfig config = new QuorumPeerConfig()
{
{
if ( fakeConfigFile != null )
{
configFileStr = fakeConfigFile.getPath();
}
}
};
config.parseProperties(properties);
return config;
}

public Properties buildRawConfig(int instanceIndex) throws Exception
{
boolean isCluster = (instanceSpecs.size() > 1);
InstanceSpec spec = instanceSpecs.get(instanceIndex);
Expand Down Expand Up @@ -135,17 +137,6 @@ public QuorumPeerConfig buildConfig(int instanceIndex) throws Exception
properties.put(property.getKey(), property.getValue());
}
}

QuorumPeerConfig config = new QuorumPeerConfig()
{
{
if ( fakeConfigFile != null )
{
configFileStr = fakeConfigFile.getPath();
}
}
};
config.parseProperties(properties);
return config;
return properties;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,24 @@

import org.apache.zookeeper.server.ServerCnxnFactory;
import org.apache.zookeeper.server.quorum.QuorumPeer;
import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
import org.apache.zookeeper.server.quorum.QuorumPeerMain;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.lang.reflect.Field;
import java.nio.channels.ServerSocketChannel;

class TestingQuorumPeerMain extends QuorumPeerMain implements ZooKeeperMainFace
{
private static final Logger logger = LoggerFactory.getLogger(TestingQuorumPeerMain.class);

private volatile boolean isClosed = false;

private int instanceIndex;
private QuorumConfigBuilder configBuilder;

@Override
public void kill()
{
Expand Down Expand Up @@ -69,7 +78,6 @@ public void close()
}
}

@Override
public void blockUntilStarted()
{
long startTime = System.currentTimeMillis();
Expand All @@ -90,4 +98,31 @@ public void blockUntilStarted()
throw new FailedServerStartException("quorumPeer never got set");
}
}

public void configure(QuorumConfigBuilder configBuilder, int instanceIndex) {
this.instanceIndex = instanceIndex;
this.configBuilder = configBuilder;
}


public void start() {

new Thread(new Runnable()
{
public void run()
{
try
{
QuorumPeerConfig config = configBuilder.buildConfig(instanceIndex);
runFromConfig(config);
}
catch ( Exception e )
{
logger.error(String.format("From testing server (random state: %s) for instance: %s", String.valueOf(configBuilder.isFromRandom()), configBuilder.getInstanceSpec(instanceIndex)), e);
}
}
}).start();

blockUntilStarted();
}
}
Loading