Create new 2 global state events

This commit is contained in:
anthonyraymond 2018-01-16 22:37:54 +01:00
parent 23ad36c143
commit b5b5a25a69
8 changed files with 21 additions and 80 deletions

View file

@ -1,10 +1,10 @@
package org.araymond.joal.core; 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.NoMoreTorrentsFileAvailableEvent;
import org.araymond.joal.core.events.old.SomethingHasFuckedUpEvent; import org.araymond.joal.core.events.old.SomethingHasFuckedUpEvent;
import org.araymond.joal.core.events.old.filechange.TorrentFileAddedEvent; 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
@ -52,8 +52,8 @@ public class CoreEventListener {
@Async @Async
@Order(Ordered.HIGHEST_PRECEDENCE) @Order(Ordered.HIGHEST_PRECEDENCE)
@EventListener @EventListener
void handleSeedSessionHasStarted(final SeedSessionHasStartedEvent event) { void handleSeedSessionHasStarted(final GlobalSeedStartedEvent event) {
logger.debug("Event SeedSessionHasStartedEvent caught."); logger.debug("Event GlobalSeedStartedEvent caught.");
// TODO : add a log to tell which BitTorrent client. // TODO : add a log to tell which BitTorrent client.
// TODO : detailed BitTorrent client log at debug log level // TODO : detailed BitTorrent client log at debug log level
} }
@ -61,8 +61,8 @@ public class CoreEventListener {
@Async @Async
@Order(Ordered.HIGHEST_PRECEDENCE) @Order(Ordered.HIGHEST_PRECEDENCE)
@EventListener @EventListener
void handleSeedSessionHasEnded(final SeedSessionHasEndedEvent event) { void handleSeedSessionHasEnded(final GlobalSeedStoppedEvent event) {
logger.debug("Event SeedSessionHasEndedEvent caught."); logger.debug("Event GlobalSeedStoppedEvent caught.");
// TODO : log that the seed session is over // TODO : log that the seed session is over
} }

View file

@ -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.client.emulated.BitTorrentClientProvider;
import org.araymond.joal.core.config.AppConfiguration; import org.araymond.joal.core.config.AppConfiguration;
import org.araymond.joal.core.config.JoalConfigProvider; 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.torrent.watcher.TorrentFileProvider;
import org.araymond.joal.core.ttorrent.client.*; import org.araymond.joal.core.ttorrent.client.*;
import org.araymond.joal.core.ttorrent.client.announcer.request.AnnounceDataAccessor; import org.araymond.joal.core.ttorrent.client.announcer.request.AnnounceDataAccessor;
@ -77,9 +79,7 @@ public class SeedManager {
.build(); .build();
this.client.start(); this.client.start();
/* publisher.publishEvent(new GlobalSeedStartedEvent(bitTorrentClient));
publisher.publishEvent(new SeedSessionHasStartedEvent(bitTorrentClient));
*/
} }
public void saveNewConfiguration(final AppConfiguration config) { public void saveNewConfiguration(final AppConfiguration config) {
@ -108,8 +108,7 @@ public class SeedManager {
public void stop() { public void stop() {
if (client != null) { if (client != null) {
this.client.stop(); this.client.stop();
// TODO: fix it this.publisher.publishEvent(new GlobalSeedStoppedEvent());
// this.publisher.publishEvent(new SeedSessionHasEndedEvent());
this.client = null; this.client = null;
} }
if (this.bandwidthDispatcher != null) { if (this.bandwidthDispatcher != null) {

View file

@ -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 com.google.common.base.Preconditions;
import org.araymond.joal.core.client.emulated.BitTorrentClient; import org.araymond.joal.core.client.emulated.BitTorrentClient;
/** public class GlobalSeedStartedEvent {
* Created by raymo on 06/05/2017.
*/
public class SeedSessionHasStartedEvent {
private final BitTorrentClient bitTorrentClient; private final BitTorrentClient bitTorrentClient;
public SeedSessionHasStartedEvent(final BitTorrentClient bitTorrentClient) { public GlobalSeedStartedEvent(final BitTorrentClient bitTorrentClient) {
Preconditions.checkNotNull(bitTorrentClient, "BitTorrentClient cannot be null"); Preconditions.checkNotNull(bitTorrentClient, "BitTorrentClient cannot be null");
this.bitTorrentClient = bitTorrentClient; this.bitTorrentClient = bitTorrentClient;
} }
@ -18,5 +14,4 @@ public class SeedSessionHasStartedEvent {
public BitTorrentClient getBitTorrentClient() { public BitTorrentClient getBitTorrentClient() {
return bitTorrentClient; return bitTorrentClient;
} }
} }

View file

@ -0,0 +1,4 @@
package org.araymond.joal.core.events.global.state;
public class GlobalSeedStoppedEvent {
}

View file

@ -1,7 +0,0 @@
package org.araymond.joal.core.events.old.global;
/**
* Created by raymo on 06/05/2017.
*/
public class SeedSessionHasEndedEvent {
}

View file

@ -1,7 +1,7 @@
package org.araymond.joal.web.services.corelistener; package org.araymond.joal.web.services.corelistener;
import org.araymond.joal.core.events.old.global.SeedSessionHasEndedEvent; import org.araymond.joal.core.events.global.state.GlobalSeedStartedEvent;
import org.araymond.joal.core.events.old.global.SeedSessionHasStartedEvent; import org.araymond.joal.core.events.global.state.GlobalSeedStoppedEvent;
import org.araymond.joal.web.annotations.ConditionalOnWebUi; 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.SeedSessionHasEndedPayload;
import org.araymond.joal.web.messages.outgoing.impl.global.SeedSessionHasStartedPayload; import org.araymond.joal.web.messages.outgoing.impl.global.SeedSessionHasStartedPayload;
@ -31,7 +31,7 @@ public class WebGlobalEventListener extends WebEventListener {
@Order(Ordered.LOWEST_PRECEDENCE) @Order(Ordered.LOWEST_PRECEDENCE)
@EventListener @EventListener
void handleSeedSessionHasStarted(final SeedSessionHasStartedEvent event) { void handleSeedSessionHasStarted(final GlobalSeedStartedEvent event) {
logger.debug("Send SeedSessionHasStartedPayload to clients."); logger.debug("Send SeedSessionHasStartedPayload to clients.");
final String client = event.getBitTorrentClient().getHeaders().stream() final String client = event.getBitTorrentClient().getHeaders().stream()
@ -45,7 +45,7 @@ public class WebGlobalEventListener extends WebEventListener {
@Order(Ordered.LOWEST_PRECEDENCE) @Order(Ordered.LOWEST_PRECEDENCE)
@EventListener @EventListener
void handleSeedSessionHasEnded(final SeedSessionHasEndedEvent event) { void handleSeedSessionHasEnded(final GlobalSeedStoppedEvent event) {
logger.debug("Send SeedSessionHasEndedPayload to clients."); logger.debug("Send SeedSessionHasEndedPayload to clients.");
this.messagingTemplate.convertAndSend("/global", new SeedSessionHasEndedPayload()); this.messagingTemplate.convertAndSend("/global", new SeedSessionHasEndedPayload());

View file

@ -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);
}
}
}

View file

@ -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);
}
}