On Mon, Mar 14, 2022 at 1:18 AM Gary Gregory <garydgreg...@gmail.com> wrote:
>
> Can't we use an ephemeral port here?

I am not sure I understand: `AvailablePortFinder` does return a port
in the ephemeral range.

Piotr

>
> Gary
>
> On Sun, Mar 13, 2022, 19:14 <pkarw...@apache.org> wrote:
>
> > This is an automated email from the ASF dual-hosted git repository.
> >
> > pkarwasz pushed a commit to branch release-2.x
> > in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
> >
> >
> > The following commit(s) were added to refs/heads/release-2.x by this push:
> >      new 10460ec  Switches Cassandra to random port
> > 10460ec is described below
> >
> > commit 10460ec5200aa7eafb33b200f0f349a66e16c708
> > Author: Piotr P. Karwasz <piotr.git...@karwasz.org>
> > AuthorDate: Mon Mar 14 00:13:41 2022 +0100
> >
> >     Switches Cassandra to random port
> > ---
> >  .../org/apache/logging/log4j/cassandra/CassandraRule.java | 15
> > ++++++++++++---
> >  .../src/test/resources/CassandraAppenderTest.xml          |  2 +-
> >  2 files changed, 13 insertions(+), 4 deletions(-)
> >
> > diff --git
> > a/log4j-cassandra/src/test/java/org/apache/logging/log4j/cassandra/CassandraRule.java
> > b/log4j-cassandra/src/test/java/org/apache/logging/log4j/cassandra/CassandraRule.java
> > index 2939d07..ad39dd6 100644
> > ---
> > a/log4j-cassandra/src/test/java/org/apache/logging/log4j/cassandra/CassandraRule.java
> > +++
> > b/log4j-cassandra/src/test/java/org/apache/logging/log4j/cassandra/CassandraRule.java
> > @@ -18,22 +18,25 @@ package org.apache.logging.log4j.cassandra;
> >
> >  import java.io.IOException;
> >  import java.net.InetAddress;
> > +import java.net.InetSocketAddress;
> >  import java.nio.file.Files;
> >  import java.nio.file.Path;
> >  import java.security.Permission;
> >  import java.util.concurrent.CountDownLatch;
> >  import java.util.concurrent.ThreadFactory;
> >
> > -import com.datastax.driver.core.Cluster;
> > -import com.datastax.driver.core.Session;
> >  import org.apache.cassandra.service.CassandraDaemon;
> >  import org.apache.logging.log4j.LoggingException;
> >  import org.apache.logging.log4j.core.util.Cancellable;
> >  import org.apache.logging.log4j.core.util.Closer;
> >  import org.apache.logging.log4j.core.util.Log4jThreadFactory;
> > +import org.apache.logging.log4j.test.AvailablePortFinder;
> >  import org.apache.logging.log4j.util.PropertiesUtil;
> >  import org.junit.rules.ExternalResource;
> >
> > +import com.datastax.driver.core.Cluster;
> > +import com.datastax.driver.core.Session;
> > +
> >  /**
> >   * JUnit rule to set up and tear down a Cassandra database instance.
> >   */
> > @@ -66,12 +69,18 @@ public class CassandraRule extends ExternalResource {
> >          Files.createDirectories(root.resolve("data"));
> >          final Path config = root.resolve("cassandra.yml");
> >          Files.copy(getClass().getResourceAsStream("/cassandra.yaml"),
> > config);
> > +        final int nativePort = AvailablePortFinder.getNextAvailable();
> > +        System.setProperty("cassandra.native_transport_port",
> > Integer.toString(nativePort));
> > +        System.setProperty("cassandra.storage_port",
> > Integer.toString(AvailablePortFinder.getNextAvailable()));
> >          System.setProperty("cassandra.config", "file:" +
> > config.toString());
> >          System.setProperty("cassandra.storagedir", root.toString());
> >          System.setProperty("cassandra-foreground", "true"); // prevents
> > Cassandra from closing stdout/stderr
> >          THREAD_FACTORY.newThread(embeddedCassandra).start();
> >          latch.await();
> > -        cluster =
> > Cluster.builder().addContactPoints(InetAddress.getLoopbackAddress()).build();
> > +        cluster = Cluster.builder()
> > +                .addContactPointsWithPorts(new
> > InetSocketAddress(InetAddress.getLoopbackAddress(), nativePort))
> > +                .build();
> > +
> >          try (final Session session = cluster.connect()) {
> >              session.execute("CREATE KEYSPACE " + keyspace + " WITH
> > REPLICATION = " +
> >                  "{ 'class': 'SimpleStrategy', 'replication_factor': 2
> > };");
> > diff --git a/log4j-cassandra/src/test/resources/CassandraAppenderTest.xml
> > b/log4j-cassandra/src/test/resources/CassandraAppenderTest.xml
> > index e1f37e9..f9ce643 100644
> > --- a/log4j-cassandra/src/test/resources/CassandraAppenderTest.xml
> > +++ b/log4j-cassandra/src/test/resources/CassandraAppenderTest.xml
> > @@ -19,7 +19,7 @@
> >  <Configuration name="CassandraAppenderTest">
> >    <Appenders>
> >      <Cassandra name="Cassandra" clusterName="Test Cluster"
> > keyspace="test" table="logs" bufferSize="10" batched="true">
> > -      <SocketAddress host="localhost" port="9042"/>
> > +      <SocketAddress host="localhost"
> > port="${sys:cassandra.native_transport_port}"/>
> >        <ColumnMapping name="id" pattern="%uuid{TIME}"
> > type="java.util.UUID"/>
> >        <ColumnMapping name="timeid" literal="now()"/>
> >        <ColumnMapping name="message" pattern="%message"/>
> >

Reply via email to