diff --git a/src/main/java/io/bitsquare/msg/Message.java b/src/main/java/io/bitsquare/msg/Message.java
new file mode 100644
index 0000000000..c3dff80f2e
--- /dev/null
+++ b/src/main/java/io/bitsquare/msg/Message.java
@@ -0,0 +1,21 @@
+/*
+ * This file is part of Bitsquare.
+ *
+ * Bitsquare is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * Bitsquare is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Bitsquare. If not, see .
+ */
+
+package io.bitsquare.msg;
+
+public interface Message {
+}
diff --git a/src/main/java/io/bitsquare/msg/MessageFacade.java b/src/main/java/io/bitsquare/msg/MessageFacade.java
index 80a9cc7b25..92795b3193 100644
--- a/src/main/java/io/bitsquare/msg/MessageFacade.java
+++ b/src/main/java/io/bitsquare/msg/MessageFacade.java
@@ -22,12 +22,11 @@ import io.bitsquare.msg.listeners.AddOfferListener;
import io.bitsquare.msg.listeners.ArbitratorListener;
import io.bitsquare.msg.listeners.BootstrapListener;
import io.bitsquare.msg.listeners.GetPeerAddressListener;
-import io.bitsquare.msg.listeners.IncomingTradeMessageListener;
+import io.bitsquare.msg.listeners.IncomingMessageListener;
import io.bitsquare.msg.listeners.OfferBookListener;
-import io.bitsquare.msg.listeners.OutgoingTradeMessageListener;
+import io.bitsquare.msg.listeners.OutgoingMessageListener;
import io.bitsquare.network.Peer;
import io.bitsquare.trade.Offer;
-import io.bitsquare.trade.protocol.trade.TradeMessage;
import java.security.PublicKey;
@@ -37,15 +36,15 @@ import javafx.beans.property.LongProperty;
public interface MessageFacade extends MessageBroker {
- void sendTradeMessage(Peer peer, TradeMessage tradeMessage, OutgoingTradeMessageListener listener);
+ void sendMessage(Peer peer, Message message, OutgoingMessageListener listener);
void shutDown();
void addArbitrator(Arbitrator arbitrator);
- void addIncomingTradeMessageListener(IncomingTradeMessageListener listener);
+ void addIncomingMessageListener(IncomingMessageListener listener);
- void removeIncomingTradeMessageListener(IncomingTradeMessageListener listener);
+ void removeIncomingMessageListener(IncomingMessageListener listener);
void addOffer(Offer offer, AddOfferListener addOfferListener);
diff --git a/src/main/java/io/bitsquare/msg/TomP2PMessageFacade.java b/src/main/java/io/bitsquare/msg/TomP2PMessageFacade.java
index 7ef5af737b..595f952192 100644
--- a/src/main/java/io/bitsquare/msg/TomP2PMessageFacade.java
+++ b/src/main/java/io/bitsquare/msg/TomP2PMessageFacade.java
@@ -22,13 +22,12 @@ import io.bitsquare.msg.listeners.AddOfferListener;
import io.bitsquare.msg.listeners.ArbitratorListener;
import io.bitsquare.msg.listeners.BootstrapListener;
import io.bitsquare.msg.listeners.GetPeerAddressListener;
-import io.bitsquare.msg.listeners.IncomingTradeMessageListener;
+import io.bitsquare.msg.listeners.IncomingMessageListener;
import io.bitsquare.msg.listeners.OfferBookListener;
-import io.bitsquare.msg.listeners.OutgoingTradeMessageListener;
+import io.bitsquare.msg.listeners.OutgoingMessageListener;
import io.bitsquare.network.Peer;
import io.bitsquare.network.tomp2p.TomP2PPeer;
import io.bitsquare.trade.Offer;
-import io.bitsquare.trade.protocol.trade.TradeMessage;
import io.bitsquare.user.User;
import com.google.common.util.concurrent.FutureCallback;
@@ -85,7 +84,7 @@ class TomP2PMessageFacade implements MessageFacade {
private final List offerBookListeners = new ArrayList<>();
private final List arbitratorListeners = new ArrayList<>();
- private final List incomingTradeMessageListeners = new ArrayList<>();
+ private final List incomingMessageListeners = new ArrayList<>();
private final LongProperty invalidationTimestamp = new SimpleLongProperty(0);
@@ -317,12 +316,12 @@ class TomP2PMessageFacade implements MessageFacade {
// Trade process
///////////////////////////////////////////////////////////////////////////////////////////
- public void sendTradeMessage(Peer peer, TradeMessage tradeMessage,
- OutgoingTradeMessageListener listener) {
+ public void sendMessage(Peer peer, Message message,
+ OutgoingMessageListener listener) {
if (!(peer instanceof TomP2PPeer)) {
throw new IllegalArgumentException("peer must be of type TomP2PPeer") ;
}
- FutureDirect futureDirect = p2pNode.sendData(((TomP2PPeer)peer).getPeerAddress(), tradeMessage);
+ FutureDirect futureDirect = p2pNode.sendData(((TomP2PPeer)peer).getPeerAddress(), message);
futureDirect.addListener(new BaseFutureListener() {
@Override
public void operationComplete(BaseFuture future) throws Exception {
@@ -469,12 +468,12 @@ class TomP2PMessageFacade implements MessageFacade {
arbitratorListeners.remove(listener);
}
- public void addIncomingTradeMessageListener(IncomingTradeMessageListener listener) {
- incomingTradeMessageListeners.add(listener);
+ public void addIncomingMessageListener(IncomingMessageListener listener) {
+ incomingMessageListeners.add(listener);
}
- public void removeIncomingTradeMessageListener(IncomingTradeMessageListener listener) {
- incomingTradeMessageListeners.remove(listener);
+ public void removeIncomingMessageListener(IncomingMessageListener listener) {
+ incomingMessageListeners.remove(listener);
}
@@ -565,9 +564,9 @@ class TomP2PMessageFacade implements MessageFacade {
@Override
public void handleMessage(Object message, Peer sender) {
- if (message instanceof TradeMessage) {
- Platform.runLater(() -> incomingTradeMessageListeners.stream().forEach(e ->
- e.onMessage((TradeMessage) message, sender)));
+ if (message instanceof Message) {
+ Platform.runLater(() -> incomingMessageListeners.stream().forEach(e ->
+ e.onMessage((Message) message, sender)));
}
}
}
diff --git a/src/main/java/io/bitsquare/msg/listeners/IncomingTradeMessageListener.java b/src/main/java/io/bitsquare/msg/listeners/IncomingMessageListener.java
similarity index 82%
rename from src/main/java/io/bitsquare/msg/listeners/IncomingTradeMessageListener.java
rename to src/main/java/io/bitsquare/msg/listeners/IncomingMessageListener.java
index 0b2adba3ae..25bc85f927 100644
--- a/src/main/java/io/bitsquare/msg/listeners/IncomingTradeMessageListener.java
+++ b/src/main/java/io/bitsquare/msg/listeners/IncomingMessageListener.java
@@ -17,9 +17,9 @@
package io.bitsquare.msg.listeners;
+import io.bitsquare.msg.Message;
import io.bitsquare.network.Peer;
-import io.bitsquare.trade.protocol.trade.TradeMessage;
-public interface IncomingTradeMessageListener {
- void onMessage(TradeMessage tradeMessage, Peer sender);
+public interface IncomingMessageListener {
+ void onMessage(Message message, Peer sender);
}
diff --git a/src/main/java/io/bitsquare/msg/listeners/OutgoingTradeMessageListener.java b/src/main/java/io/bitsquare/msg/listeners/OutgoingMessageListener.java
similarity index 94%
rename from src/main/java/io/bitsquare/msg/listeners/OutgoingTradeMessageListener.java
rename to src/main/java/io/bitsquare/msg/listeners/OutgoingMessageListener.java
index 5fbcd3a40a..63d1896141 100644
--- a/src/main/java/io/bitsquare/msg/listeners/OutgoingTradeMessageListener.java
+++ b/src/main/java/io/bitsquare/msg/listeners/OutgoingMessageListener.java
@@ -17,7 +17,7 @@
package io.bitsquare.msg.listeners;
-public interface OutgoingTradeMessageListener {
+public interface OutgoingMessageListener {
void onFailed();
void onResult();
diff --git a/src/main/java/io/bitsquare/trade/TradeManager.java b/src/main/java/io/bitsquare/trade/TradeManager.java
index 637b80bb54..e8910bda8b 100644
--- a/src/main/java/io/bitsquare/trade/TradeManager.java
+++ b/src/main/java/io/bitsquare/trade/TradeManager.java
@@ -20,6 +20,7 @@ package io.bitsquare.trade;
import io.bitsquare.btc.BlockChainFacade;
import io.bitsquare.btc.WalletFacade;
import io.bitsquare.crypto.CryptoFacade;
+import io.bitsquare.msg.Message;
import io.bitsquare.msg.MessageFacade;
import io.bitsquare.network.Peer;
import io.bitsquare.persistence.Persistence;
@@ -120,7 +121,7 @@ public class TradeManager {
closedTrades.putAll((Map) closedTradesObject);
}
- messageFacade.addIncomingTradeMessageListener(this::onIncomingTradeMessage);
+ messageFacade.addIncomingMessageListener(this::onIncomingTradeMessage);
}
@@ -129,7 +130,7 @@ public class TradeManager {
///////////////////////////////////////////////////////////////////////////////////////////
public void cleanup() {
- messageFacade.removeIncomingTradeMessageListener(this::onIncomingTradeMessage);
+ messageFacade.removeIncomingMessageListener(this::onIncomingTradeMessage);
}
@@ -411,8 +412,11 @@ public class TradeManager {
///////////////////////////////////////////////////////////////////////////////////////////
// Routes the incoming messages to the responsible protocol
- private void onIncomingTradeMessage(TradeMessage tradeMessage, Peer sender) {
- // log.trace("processTradingMessage TradeId " + tradeMessage.getTradeId());
+ private void onIncomingTradeMessage(Message message, Peer sender) {
+ if (!(message instanceof TradeMessage))
+ throw new IllegalArgumentException("message must be of type TradeMessage");
+ TradeMessage tradeMessage = (TradeMessage) message;
+
log.trace("onIncomingTradeMessage instance " + tradeMessage.getClass().getSimpleName());
log.trace("onIncomingTradeMessage sender " + sender);
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java b/src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java
index 141b95bb9f..ca8a239b4e 100644
--- a/src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java
+++ b/src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java
@@ -17,6 +17,8 @@
package io.bitsquare.trade.protocol.trade;
-public interface TradeMessage {
+import io.bitsquare.msg.Message;
+
+public interface TradeMessage extends Message {
public String getTradeId();
}
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java b/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java
index e4bfe736dd..02147d4e82 100644
--- a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java
+++ b/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java
@@ -18,7 +18,7 @@
package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.msg.MessageFacade;
-import io.bitsquare.msg.listeners.OutgoingTradeMessageListener;
+import io.bitsquare.msg.listeners.OutgoingMessageListener;
import io.bitsquare.network.Peer;
import io.bitsquare.trade.Trade;
import io.bitsquare.trade.handlers.ExceptionHandler;
@@ -39,7 +39,7 @@ public class HandleTakeOfferRequest {
}
RespondToTakeOfferRequestMessage tradeMessage =
new RespondToTakeOfferRequestMessage(tradeId, takeOfferRequestAccepted);
- messageFacade.sendTradeMessage(peer, tradeMessage, new OutgoingTradeMessageListener() {
+ messageFacade.sendMessage(peer, tradeMessage, new OutgoingMessageListener() {
@Override
public void onResult() {
log.trace("RespondToTakeOfferRequestMessage successfully arrived at peer");
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java b/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java
index b28dba756b..ac34b12810 100644
--- a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java
+++ b/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java
@@ -19,7 +19,7 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.bank.BankAccount;
import io.bitsquare.msg.MessageFacade;
-import io.bitsquare.msg.listeners.OutgoingTradeMessageListener;
+import io.bitsquare.msg.listeners.OutgoingMessageListener;
import io.bitsquare.network.Peer;
import io.bitsquare.trade.handlers.ExceptionHandler;
import io.bitsquare.trade.handlers.ResultHandler;
@@ -44,7 +44,7 @@ public class RequestTakerDepositPayment {
log.trace("Run task");
RequestTakerDepositPaymentMessage tradeMessage = new RequestTakerDepositPaymentMessage(
tradeId, bankAccount, accountId, offererPubKey, preparedOffererDepositTxAsHex, offererTxOutIndex);
- messageFacade.sendTradeMessage(peer, tradeMessage, new OutgoingTradeMessageListener() {
+ messageFacade.sendMessage(peer, tradeMessage, new OutgoingMessageListener() {
@Override
public void onResult() {
log.trace("RequestTakerDepositPaymentMessage successfully arrived at peer");
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java b/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java
index e1b44701fb..74287b44b9 100644
--- a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java
+++ b/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java
@@ -18,7 +18,7 @@
package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.msg.MessageFacade;
-import io.bitsquare.msg.listeners.OutgoingTradeMessageListener;
+import io.bitsquare.msg.listeners.OutgoingMessageListener;
import io.bitsquare.network.Peer;
import io.bitsquare.trade.handlers.ExceptionHandler;
import io.bitsquare.trade.handlers.ResultHandler;
@@ -39,7 +39,7 @@ public class SendDepositTxIdToTaker {
DepositTxPublishedMessage tradeMessage =
new DepositTxPublishedMessage(tradeId, Utils.HEX.encode(depositTransaction.bitcoinSerialize()));
- messageFacade.sendTradeMessage(peer, tradeMessage, new OutgoingTradeMessageListener() {
+ messageFacade.sendMessage(peer, tradeMessage, new OutgoingMessageListener() {
@Override
public void onResult() {
log.trace("DepositTxPublishedMessage successfully arrived at peer");
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java b/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java
index 53421a1c4f..3000aa8b95 100644
--- a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java
+++ b/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java
@@ -19,7 +19,7 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.btc.WalletFacade;
import io.bitsquare.msg.MessageFacade;
-import io.bitsquare.msg.listeners.OutgoingTradeMessageListener;
+import io.bitsquare.msg.listeners.OutgoingMessageListener;
import io.bitsquare.network.Peer;
import io.bitsquare.trade.handlers.ExceptionHandler;
import io.bitsquare.trade.handlers.ResultHandler;
@@ -68,7 +68,7 @@ public class SendSignedPayoutTx {
takerPaybackAmount,
offererPayoutAddress);
- messageFacade.sendTradeMessage(peer, tradeMessage, new OutgoingTradeMessageListener() {
+ messageFacade.sendMessage(peer, tradeMessage, new OutgoingMessageListener() {
@Override
public void onResult() {
log.trace("BankTransferInitedMessage successfully arrived at peer");
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java b/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java
index 41c1aaf060..412f6ceaf0 100644
--- a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java
+++ b/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java
@@ -18,7 +18,7 @@
package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.msg.MessageFacade;
-import io.bitsquare.msg.listeners.OutgoingTradeMessageListener;
+import io.bitsquare.msg.listeners.OutgoingMessageListener;
import io.bitsquare.network.Peer;
import io.bitsquare.trade.handlers.ExceptionHandler;
import io.bitsquare.trade.handlers.ResultHandler;
@@ -33,8 +33,8 @@ public class RequestTakeOffer {
public static void run(ResultHandler resultHandler, ExceptionHandler exceptionHandler, Peer peer,
MessageFacade messageFacade, String tradeId) {
log.trace("Run task");
- messageFacade.sendTradeMessage(peer, new RequestTakeOfferMessage(tradeId),
- new OutgoingTradeMessageListener() {
+ messageFacade.sendMessage(peer, new RequestTakeOfferMessage(tradeId),
+ new OutgoingMessageListener() {
@Override
public void onResult() {
log.trace("RequestTakeOfferMessage successfully arrived at peer");
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java b/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java
index e1480dfa8e..79f120bca1 100644
--- a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java
+++ b/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java
@@ -18,7 +18,7 @@
package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.msg.MessageFacade;
-import io.bitsquare.msg.listeners.OutgoingTradeMessageListener;
+import io.bitsquare.msg.listeners.OutgoingMessageListener;
import io.bitsquare.network.Peer;
import io.bitsquare.trade.handlers.ExceptionHandler;
import io.bitsquare.trade.handlers.ResultHandler;
@@ -34,7 +34,7 @@ public class SendPayoutTxToOfferer {
MessageFacade messageFacade, String tradeId, String payoutTxAsHex) {
log.trace("Run task");
PayoutTxPublishedMessage tradeMessage = new PayoutTxPublishedMessage(tradeId, payoutTxAsHex);
- messageFacade.sendTradeMessage(peer, tradeMessage, new OutgoingTradeMessageListener() {
+ messageFacade.sendMessage(peer, tradeMessage, new OutgoingMessageListener() {
@Override
public void onResult() {
log.trace("PayoutTxPublishedMessage successfully arrived at peer");
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java b/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java
index 493a5bef20..45bf09cfe2 100644
--- a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java
+++ b/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java
@@ -20,7 +20,7 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.bank.BankAccount;
import io.bitsquare.btc.WalletFacade;
import io.bitsquare.msg.MessageFacade;
-import io.bitsquare.msg.listeners.OutgoingTradeMessageListener;
+import io.bitsquare.msg.listeners.OutgoingMessageListener;
import io.bitsquare.network.Peer;
import io.bitsquare.trade.handlers.ExceptionHandler;
import io.bitsquare.trade.handlers.ResultHandler;
@@ -68,7 +68,7 @@ public class SendSignedTakerDepositTxAsHex {
walletFacade.getAddressInfoByTradeID(tradeId).getAddressString(),
takerTxOutIndex,
offererTxOutIndex);
- messageFacade.sendTradeMessage(peer, tradeMessage, new OutgoingTradeMessageListener() {
+ messageFacade.sendMessage(peer, tradeMessage, new OutgoingMessageListener() {
@Override
public void onResult() {
log.trace("RequestOffererDepositPublicationMessage successfully arrived at peer");
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java b/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java
index 7e21cf4024..e9366ba9a6 100644
--- a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java
+++ b/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java
@@ -18,7 +18,7 @@
package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.msg.MessageFacade;
-import io.bitsquare.msg.listeners.OutgoingTradeMessageListener;
+import io.bitsquare.msg.listeners.OutgoingMessageListener;
import io.bitsquare.network.Peer;
import io.bitsquare.trade.handlers.ExceptionHandler;
import io.bitsquare.trade.handlers.ResultHandler;
@@ -44,7 +44,7 @@ public class SendTakeOfferFeePayedTxId {
TakeOfferFeePayedMessage msg = new TakeOfferFeePayedMessage(tradeId, takeOfferFeeTxId, tradeAmount,
pubKeyForThatTradeAsHex);
- messageFacade.sendTradeMessage(peer, msg, new OutgoingTradeMessageListener() {
+ messageFacade.sendMessage(peer, msg, new OutgoingMessageListener() {
@Override
public void onResult() {
log.trace("TakeOfferFeePayedMessage successfully arrived at peer");