This commit is contained in:
2021-12-19 16:33:11 +01:00
parent 0022ebaf88
commit 0eb21d2083
15 changed files with 225 additions and 305 deletions

View File

@@ -4,6 +4,10 @@ import ch.unisg.tapas.auctionhouse.adapter.common.clients.TapasMqttClient;
import ch.unisg.tapas.auctionhouse.adapter.in.messaging.mqtt.AuctionEventsMqttDispatcher;
import ch.unisg.tapas.auctionhouse.adapter.common.clients.WebSubSubscriber;
import ch.unisg.tapas.auctionhouse.application.service.GetExecutorsService;
import ch.unisg.tapas.auctionhouse.domain.AuctionHouseDiscovery;
import ch.unisg.tapas.auctionhouse.domain.AuctionHouseDiscoveryInformation;
import ch.unisg.tapas.common.AuctionHouseResourceDirectory;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.eclipse.paho.client.mqttv3.MqttException;
@@ -13,6 +17,9 @@ import org.springframework.core.env.ConfigurableEnvironment;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* Main TAPAS Auction House application.
@@ -30,7 +37,7 @@ public class TapasAuctionHouseApplication {
ENVIRONMENT = tapasAuctioneerApp.run(args).getEnvironment();
// TODO Set start up of message services with config
// We will use these bootstrap methods in Week 6:
// bootstrapMarketplaceWithWebSub();
bootstrapMarketplaceWithWebSub();
bootstrapMarketplaceWithMqtt();
var getExecutorsService = new GetExecutorsService();
getExecutorsService.getExecutorsFromExecutorPool();
@@ -39,19 +46,20 @@ public class TapasAuctionHouseApplication {
* Discovers auction houses and subscribes to WebSub notifications
*/
private static void bootstrapMarketplaceWithWebSub() {
// discoverAuctionHouseEndpoints();
discoverAuctionHouseEndpoints();
WebSubSubscriber subscriber = new WebSubSubscriber(ENVIRONMENT.getProperty("auction.house.uri"));
// for (AuctionHouseDiscoveryInformation endpoint : AuctionHouseDiscovery.getInstance().getAuctionHouseDiscoveryList()) {
// subscriber.subscribeToAuctionHouseEndpoint(endpoint.getWebSubUri().getValue());
// }
try {
subscriber.subscribeToAuctionHouseEndpoint(new URI("http://6b4e-130-82-250-227.ngrok.io/websub-discovery"));
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
for (AuctionHouseDiscoveryInformation endpoint : AuctionHouseDiscovery.getInstance().getAuctionHouseDiscoveryList()) {
System.out.println(endpoint.getWebSubUri().getValue());
subscriber.subscribeToAuctionHouseEndpoint(endpoint.getWebSubUri().getValue());
}
// try {
// subscriber.subscribeToAuctionHouseEndpoint(new URI("http://6b4e-130-82-250-227.ngrok.io/websub-discovery"));
// } catch (URISyntaxException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}
/**
@@ -76,17 +84,17 @@ public class TapasAuctionHouseApplication {
}
}
// private static void discoverAuctionHouseEndpoints() {
private static void discoverAuctionHouseEndpoints() {
// AuctionHouseResourceDirectory rd = new AuctionHouseResourceDirectory(
// URI.create(ENVIRONMENT.getProperty("discovery.endpoint.uri"))
// );
AuctionHouseResourceDirectory rd = new AuctionHouseResourceDirectory(
URI.create(ENVIRONMENT.getProperty("discovery.endpoint.uri"))
);
// AuctionHouseDiscovery.getInstance().addAuctionHouseDiscoveryInformation(rd.retrieveAuctionHouseEndpoints());
AuctionHouseDiscovery.getInstance().addAuctionHouseDiscoveryInformation(rd.retrieveAuctionHouseEndpoints());
// ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
// executor.scheduleAtFixedRate(crawlerRunnable, 300, 300, TimeUnit.SECONDS);
// }
// ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
// executor.scheduleAtFixedRate(crawlerRunnable, 300, 300, TimeUnit.SECONDS);
}
// private static Runnable crawlerRunnable = new Runnable() {

View File

@@ -41,8 +41,8 @@ public class AuctionHouseDiscoveryHttpAdapter implements AuctionHouseDiscoveryPo
{
var informationJSON = arrayOfInformation.getJSONObject(i);
var information = new AuctionHouseDiscoveryInformation(
new AuctionHouseDiscoveryInformation.AuctionHouseUri(URI.create(informationJSON.getString("auctionHouseURI"))),
new AuctionHouseDiscoveryInformation.WebSubUri(URI.create(informationJSON.getString("webSubURI"))),
new AuctionHouseDiscoveryInformation.AuctionHouseUri(URI.create(informationJSON.getString("auctionHouseUri"))),
new AuctionHouseDiscoveryInformation.WebSubUri(URI.create(informationJSON.getString("webSubUri"))),
new AuctionHouseDiscoveryInformation.TaskTypes(getTaskTypes(informationJSON.getJSONArray("taskTypes"))),
new AuctionHouseDiscoveryInformation.TimeStamp(Timestamp.valueOf(informationJSON.getString("timeStamp"))),
new AuctionHouseDiscoveryInformation.GroupName(informationJSON.getString("groupName"))

View File

@@ -65,8 +65,17 @@ public class StartAuctionService implements LaunchAuctionUseCase {
auctions.addAuction(auction);
// Schedule the closing of the auction at the deadline
service.schedule(new CloseAuctionTask(auction.getAuctionId()), deadline.getValue().getTime() - System.currentTimeMillis(),
System.out.println(deadline.getValue().getTime());
System.out.println(System.currentTimeMillis());
System.out.println(deadline.getValue().getTime() - System.currentTimeMillis());
if (deadline.getValue().getTime() == DEFAULT_AUCTION_DEADLINE_MILLIS.getTime()) {
System.out.println("DEFAULT TIMESTAMP USED");
service.schedule(new CloseAuctionTask(auction.getAuctionId()), 10000,
TimeUnit.MILLISECONDS);
} else {
service.schedule(new CloseAuctionTask(auction.getAuctionId()), deadline.getValue().getTime() - System.currentTimeMillis(),
TimeUnit.MILLISECONDS);
}
// Publish an auction started event
AuctionStartedEvent auctionStartedEvent = new AuctionStartedEvent(auction);

View File

@@ -15,8 +15,9 @@ public class AuctionHouseDiscovery {
private final List<String> tasktypes = new ArrayList<String>() {
{
add("computation");
add("smallrobot");
add("COMPUTATION");
add("SMALLROBOT");
add("HUMIDITY");
}
};
@@ -31,8 +32,8 @@ public class AuctionHouseDiscovery {
try {
// Add our information to list
auctionHouseDiscoveryList.add(new AuctionHouseDiscoveryInformation(
new AuctionHouseDiscoveryInformation.AuctionHouseUri(new URI("http://localhost:8086")),
new AuctionHouseDiscoveryInformation.WebSubUri(new URI("http://localhost:8086/websub/auctions")),
new AuctionHouseDiscoveryInformation.AuctionHouseUri(new URI("https://tapas-auction-house.86-119-35-40.nip.io")),
new AuctionHouseDiscoveryInformation.WebSubUri(new URI("https://tapas-auction-house.86-119-35-40.nip.io/websub/auctions")),
new AuctionHouseDiscoveryInformation.TaskTypes(tasktypes),
new AuctionHouseDiscoveryInformation.TimeStamp(new Timestamp(new Date().getTime())),
new AuctionHouseDiscoveryInformation.GroupName("Group 1")

View File

@@ -15,4 +15,4 @@ websub.hub.uri=https://pubsubhubbub.appspot.com
mqtt.broker.uri=tcp://broker.hivemq.com
# mqtt.broker.uri=tcp://localhost:1883
discovery.endpoint.uri=http://localhost:3500
discovery.endpoint.uri=https://tapas-auction-house.86-119-34-242.nip.io