mirror of
https://github.com/anthonyraymond/joal.git
synced 2024-09-20 15:26:25 +08:00
Create new 2 global state events
This commit is contained in:
parent
23ad36c143
commit
b5b5a25a69
|
@ -1,10 +1,10 @@
|
|||
package org.araymond.joal.core;
|
||||
|
||||
import org.araymond.joal.core.events.global.state.GlobalSeedStartedEvent;
|
||||
import org.araymond.joal.core.events.global.state.GlobalSeedStoppedEvent;
|
||||
import org.araymond.joal.core.events.old.NoMoreTorrentsFileAvailableEvent;
|
||||
import org.araymond.joal.core.events.old.SomethingHasFuckedUpEvent;
|
||||
import org.araymond.joal.core.events.old.filechange.TorrentFileAddedEvent;
|
||||
import org.araymond.joal.core.events.old.global.SeedSessionHasEndedEvent;
|
||||
import org.araymond.joal.core.events.old.global.SeedSessionHasStartedEvent;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
|
@ -52,8 +52,8 @@ public class CoreEventListener {
|
|||
@Async
|
||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||
@EventListener
|
||||
void handleSeedSessionHasStarted(final SeedSessionHasStartedEvent event) {
|
||||
logger.debug("Event SeedSessionHasStartedEvent caught.");
|
||||
void handleSeedSessionHasStarted(final GlobalSeedStartedEvent event) {
|
||||
logger.debug("Event GlobalSeedStartedEvent caught.");
|
||||
// TODO : add a log to tell which BitTorrent client.
|
||||
// TODO : detailed BitTorrent client log at debug log level
|
||||
}
|
||||
|
@ -61,8 +61,8 @@ public class CoreEventListener {
|
|||
@Async
|
||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||
@EventListener
|
||||
void handleSeedSessionHasEnded(final SeedSessionHasEndedEvent event) {
|
||||
logger.debug("Event SeedSessionHasEndedEvent caught.");
|
||||
void handleSeedSessionHasEnded(final GlobalSeedStoppedEvent event) {
|
||||
logger.debug("Event GlobalSeedStoppedEvent caught.");
|
||||
// TODO : log that the seed session is over
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@ import org.araymond.joal.core.client.emulated.BitTorrentClient;
|
|||
import org.araymond.joal.core.client.emulated.BitTorrentClientProvider;
|
||||
import org.araymond.joal.core.config.AppConfiguration;
|
||||
import org.araymond.joal.core.config.JoalConfigProvider;
|
||||
import org.araymond.joal.core.events.global.state.GlobalSeedStartedEvent;
|
||||
import org.araymond.joal.core.events.global.state.GlobalSeedStoppedEvent;
|
||||
import org.araymond.joal.core.torrent.watcher.TorrentFileProvider;
|
||||
import org.araymond.joal.core.ttorrent.client.*;
|
||||
import org.araymond.joal.core.ttorrent.client.announcer.request.AnnounceDataAccessor;
|
||||
|
@ -77,9 +79,7 @@ public class SeedManager {
|
|||
.build();
|
||||
|
||||
this.client.start();
|
||||
/*
|
||||
publisher.publishEvent(new SeedSessionHasStartedEvent(bitTorrentClient));
|
||||
*/
|
||||
publisher.publishEvent(new GlobalSeedStartedEvent(bitTorrentClient));
|
||||
}
|
||||
|
||||
public void saveNewConfiguration(final AppConfiguration config) {
|
||||
|
@ -108,8 +108,7 @@ public class SeedManager {
|
|||
public void stop() {
|
||||
if (client != null) {
|
||||
this.client.stop();
|
||||
// TODO: fix it
|
||||
// this.publisher.publishEvent(new SeedSessionHasEndedEvent());
|
||||
this.publisher.publishEvent(new GlobalSeedStoppedEvent());
|
||||
this.client = null;
|
||||
}
|
||||
if (this.bandwidthDispatcher != null) {
|
||||
|
|
|
@ -1,16 +1,12 @@
|
|||
package org.araymond.joal.core.events.old.global;
|
||||
package org.araymond.joal.core.events.global.state;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import org.araymond.joal.core.client.emulated.BitTorrentClient;
|
||||
|
||||
/**
|
||||
* Created by raymo on 06/05/2017.
|
||||
*/
|
||||
public class SeedSessionHasStartedEvent {
|
||||
|
||||
public class GlobalSeedStartedEvent {
|
||||
private final BitTorrentClient bitTorrentClient;
|
||||
|
||||
public SeedSessionHasStartedEvent(final BitTorrentClient bitTorrentClient) {
|
||||
public GlobalSeedStartedEvent(final BitTorrentClient bitTorrentClient) {
|
||||
Preconditions.checkNotNull(bitTorrentClient, "BitTorrentClient cannot be null");
|
||||
this.bitTorrentClient = bitTorrentClient;
|
||||
}
|
||||
|
@ -18,5 +14,4 @@ public class SeedSessionHasStartedEvent {
|
|||
public BitTorrentClient getBitTorrentClient() {
|
||||
return bitTorrentClient;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
package org.araymond.joal.core.events.global.state;
|
||||
|
||||
public class GlobalSeedStoppedEvent {
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
package org.araymond.joal.core.events.old.global;
|
||||
|
||||
/**
|
||||
* Created by raymo on 06/05/2017.
|
||||
*/
|
||||
public class SeedSessionHasEndedEvent {
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
package org.araymond.joal.web.services.corelistener;
|
||||
|
||||
import org.araymond.joal.core.events.old.global.SeedSessionHasEndedEvent;
|
||||
import org.araymond.joal.core.events.old.global.SeedSessionHasStartedEvent;
|
||||
import org.araymond.joal.core.events.global.state.GlobalSeedStartedEvent;
|
||||
import org.araymond.joal.core.events.global.state.GlobalSeedStoppedEvent;
|
||||
import org.araymond.joal.web.annotations.ConditionalOnWebUi;
|
||||
import org.araymond.joal.web.messages.outgoing.impl.global.SeedSessionHasEndedPayload;
|
||||
import org.araymond.joal.web.messages.outgoing.impl.global.SeedSessionHasStartedPayload;
|
||||
|
@ -31,7 +31,7 @@ public class WebGlobalEventListener extends WebEventListener {
|
|||
|
||||
@Order(Ordered.LOWEST_PRECEDENCE)
|
||||
@EventListener
|
||||
void handleSeedSessionHasStarted(final SeedSessionHasStartedEvent event) {
|
||||
void handleSeedSessionHasStarted(final GlobalSeedStartedEvent event) {
|
||||
logger.debug("Send SeedSessionHasStartedPayload to clients.");
|
||||
|
||||
final String client = event.getBitTorrentClient().getHeaders().stream()
|
||||
|
@ -45,7 +45,7 @@ public class WebGlobalEventListener extends WebEventListener {
|
|||
|
||||
@Order(Ordered.LOWEST_PRECEDENCE)
|
||||
@EventListener
|
||||
void handleSeedSessionHasEnded(final SeedSessionHasEndedEvent event) {
|
||||
void handleSeedSessionHasEnded(final GlobalSeedStoppedEvent event) {
|
||||
logger.debug("Send SeedSessionHasEndedPayload to clients.");
|
||||
|
||||
this.messagingTemplate.convertAndSend("/global", new SeedSessionHasEndedPayload());
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
package org.araymond.joal.core.events.old.global;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.fail;
|
||||
|
||||
/**
|
||||
* Created by raymo on 25/05/2017.
|
||||
*/
|
||||
public class SeedSessionHasEndedEventTest {
|
||||
|
||||
@Test
|
||||
public void shouldBuild() {
|
||||
try {
|
||||
new SeedSessionHasEndedEvent();
|
||||
} catch (final Throwable t) {
|
||||
fail("Failed to build", t);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
package org.araymond.joal.core.events.old.global;
|
||||
|
||||
import org.araymond.joal.core.client.emulated.BitTorrentClient;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
|
||||
/**
|
||||
* Created by raymo on 25/05/2017.
|
||||
*/
|
||||
public class SeedSessionHasStartedEventTest {
|
||||
|
||||
@Test
|
||||
public void shouldNotBuildWithoutTorrent() {
|
||||
assertThatThrownBy(() -> new SeedSessionHasStartedEvent(null))
|
||||
.isInstanceOf(NullPointerException.class)
|
||||
.hasMessageContaining("BitTorrentClient cannot be null");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldBuild() {
|
||||
final BitTorrentClient client = Mockito.mock(BitTorrentClient.class);
|
||||
final SeedSessionHasStartedEvent event = new SeedSessionHasStartedEvent(client);
|
||||
|
||||
assertThat(event.getBitTorrentClient()).isEqualTo(client);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue