Skip to content

Commit 60c2de4

Browse files
Introduce Channel#exchangeDeleteNowait
1 parent 1993e53 commit 60c2de4

File tree

4 files changed

+31
-0
lines changed

4 files changed

+31
-0
lines changed

src/com/rabbitmq/client/Channel.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,18 @@ void exchangeDeclareNowait(String exchange,
383383
*/
384384
Exchange.DeleteOk exchangeDelete(String exchange, boolean ifUnused) throws IOException;
385385

386+
/**
387+
* Like {@link Channel#exchangeDelete(String, boolean)} but sets nowait parameter to true
388+
* and returns void (as there will be no response from the server).
389+
* @see com.rabbitmq.client.AMQP.Exchange.Delete
390+
* @see com.rabbitmq.client.AMQP.Exchange.DeleteOk
391+
* @param exchange the name of the exchange
392+
* @param ifUnused true to indicate that the exchange is only to be deleted if it is unused
393+
* @throws java.io.IOException if an error is encountered
394+
*/
395+
void exchangeDeleteNowait(String exchange, boolean ifUnused) throws IOException;
396+
397+
386398
/**
387399
* Delete an exchange, without regard for whether it is in use or not
388400
* @see com.rabbitmq.client.AMQP.Exchange.Delete

src/com/rabbitmq/client/impl/ChannelN.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -742,6 +742,15 @@ public Exchange.DeleteOk exchangeDelete(String exchange, boolean ifUnused)
742742
.getMethod();
743743
}
744744

745+
/** Public API - {@inheritDoc} */
746+
public void exchangeDeleteNowait(String exchange, boolean ifUnused) throws IOException {
747+
transmit(new AMQCommand(new Exchange.Delete.Builder()
748+
.exchange(exchange)
749+
.ifUnused(ifUnused)
750+
.nowait(true)
751+
.build()));
752+
}
753+
745754
/** Public API - {@inheritDoc} */
746755
public Exchange.DeleteOk exchangeDelete(String exchange)
747756
throws IOException

src/com/rabbitmq/client/impl/recovery/AutorecoveringChannel.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,11 @@ public AMQP.Exchange.DeleteOk exchangeDelete(String exchange, boolean ifUnused)
204204
return delegate.exchangeDelete(exchange, ifUnused);
205205
}
206206

207+
public void exchangeDeleteNowait(String exchange, boolean ifUnused) throws IOException {
208+
deleteRecordedExchange(exchange);
209+
delegate.exchangeDeleteNowait(exchange, ifUnused);
210+
}
211+
207212
public AMQP.Exchange.DeleteOk exchangeDelete(String exchange) throws IOException {
208213
return exchangeDelete(exchange, false);
209214
}

test/src/com/rabbitmq/client/test/functional/Nowait.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,9 @@ public void testQueueDeleteWithNowait() throws IOException {
4343
channel.queueDeleteNowait(q, false, false);
4444
}
4545

46+
public void testExchangeDeleteWithNowait() throws IOException {
47+
String x = generateExchangeName();
48+
channel.exchangeDeclareNowait(x, "fanout", false, false, false, null);
49+
channel.exchangeDeleteNowait(x, false);
50+
}
4651
}

0 commit comments

Comments
 (0)