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");