Class SurefireMasterProcessChannelProcessorFactory
- java.lang.Object
-
- org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory
-
- org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,MasterProcessChannelProcessorFactory
public class SurefireMasterProcessChannelProcessorFactory extends AbstractMasterProcessChannelProcessorFactory
Producer of TCP/IP encoder and decoder.- Since:
- 3.0.0-M5
-
-
Field Summary
Fields Modifier and Type Field Description private java.nio.channels.AsynchronousSocketChannel
clientSocketChannel
private static int
FLUSH_PERIOD_MILLIS
-
Constructor Summary
Constructors Constructor Description SurefireMasterProcessChannelProcessorFactory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canUse(java.lang.String channelConfig)
Evaluates thechannelConfig
.void
close()
void
connect(java.lang.String channelConfig)
Open a new connection.MasterProcessChannelDecoder
createDecoder(ForkNodeArguments forkingArguments)
Decoder factory method.MasterProcessChannelEncoder
createEncoder(ForkNodeArguments forkingArguments)
Encoder factory method.private static java.lang.String
extractSessionId(java.net.URI uri)
private void
setTrueOptions(java.net.SocketOption<java.lang.Boolean>... options)
-
Methods inherited from class org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory
schedulePeriodicFlusher
-
-
-
-
Field Detail
-
FLUSH_PERIOD_MILLIS
private static final int FLUSH_PERIOD_MILLIS
- See Also:
- Constant Field Values
-
clientSocketChannel
private volatile java.nio.channels.AsynchronousSocketChannel clientSocketChannel
-
-
Method Detail
-
canUse
public boolean canUse(java.lang.String channelConfig)
Description copied from interface:MasterProcessChannelProcessorFactory
Evaluates thechannelConfig
.- Parameters:
channelConfig
- a connection string used by the fork JVM- Returns:
true
ifchannelConfig
is applicable and thus this SPI is eligible in the fork
-
connect
public void connect(java.lang.String channelConfig) throws java.io.IOException
Description copied from interface:MasterProcessChannelProcessorFactory
Open a new connection.- Parameters:
channelConfig
- e.g. "pipe://3" or "tcp://localhost:65035"- Throws:
java.io.IOException
- if cannot connect
-
createDecoder
public MasterProcessChannelDecoder createDecoder(@Nonnull ForkNodeArguments forkingArguments)
Description copied from interface:MasterProcessChannelProcessorFactory
Decoder factory method.- Parameters:
forkingArguments
- forking arguments- Returns:
- a new instance of decoder
-
createEncoder
public MasterProcessChannelEncoder createEncoder(@Nonnull ForkNodeArguments forkingArguments)
Description copied from interface:MasterProcessChannelProcessorFactory
Encoder factory method.- Parameters:
forkingArguments
- forking arguments- Returns:
- a new instance of encoder
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classAbstractMasterProcessChannelProcessorFactory
- Throws:
java.io.IOException
-
setTrueOptions
@SafeVarargs private final void setTrueOptions(java.net.SocketOption<java.lang.Boolean>... options) throws java.io.IOException
- Throws:
java.io.IOException
-
extractSessionId
private static java.lang.String extractSessionId(java.net.URI uri)
-
-