Skip to content

Commit

Permalink
Restore some deprecated backwards compatibility glue for the event li…
Browse files Browse the repository at this point in the history
…stener changes.
  • Loading branch information
mikehearn committed Sep 2, 2015
1 parent 5e15c04 commit fc9ae41
Show file tree
Hide file tree
Showing 8 changed files with 101 additions and 29 deletions.
51 changes: 32 additions & 19 deletions core/src/main/java/org/bitcoinj/core/AbstractBlockChain.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,18 @@

package org.bitcoinj.core;

import org.bitcoinj.core.listeners.NewBestBlockListener;
import org.bitcoinj.core.listeners.ReorganizeListener;
import org.bitcoinj.core.listeners.TransactionReceivedInBlockListener;
import org.bitcoinj.store.BlockStore;
import org.bitcoinj.store.BlockStoreException;
import org.bitcoinj.utils.ListenerRegistration;
import org.bitcoinj.utils.Threading;
import org.bitcoinj.utils.VersionTally;
import com.google.common.base.Preconditions;
import com.google.common.collect.Sets;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.Nullable;
import com.google.common.base.*;
import com.google.common.collect.*;
import com.google.common.util.concurrent.*;
import org.bitcoinj.core.listeners.*;
import org.bitcoinj.store.*;
import org.bitcoinj.utils.*;
import org.slf4j.*;

import javax.annotation.*;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Executor;
import java.util.concurrent.locks.ReentrantLock;
import java.util.concurrent.*;
import java.util.concurrent.locks.*;

import static com.google.common.base.Preconditions.*;

Expand Down Expand Up @@ -208,6 +200,27 @@ public void removeWallet(Wallet wallet) {
removeTransactionReceivedListener(wallet);
}

/** Replaced with more specific listener methods: use them instead. */
@Deprecated @SuppressWarnings("deprecation")
public void addListener(BlockChainListener listener) {
addListener(listener, Threading.USER_THREAD);
}

/** Replaced with more specific listener methods: use them instead. */
@Deprecated
public void addListener(BlockChainListener listener, Executor executor) {
addReorganizeListener(executor, listener);
addNewBestBlockListener(executor, listener);
addTransactionReceivedListener(executor, listener);
}

@Deprecated
public void removeListener(BlockChainListener listener) {
removeReorganizeListener(listener);
removeNewBestBlockListener(listener);
removeTransactionReceivedListener(listener);
}

/**
* Adds a {@link NewBestBlockListener} listener to the chain.
*/
Expand Down
23 changes: 21 additions & 2 deletions core/src/main/java/org/bitcoinj/core/Peer.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,8 @@

import com.google.common.base.*;
import com.google.common.base.Objects;
import org.bitcoinj.core.listeners.*;
import org.bitcoinj.net.StreamConnection;
import org.bitcoinj.core.listeners.PeerConnectionEventListener;
import org.bitcoinj.core.listeners.PeerDataEventListener;
import org.bitcoinj.store.BlockStore;
import org.bitcoinj.store.BlockStoreException;
import org.bitcoinj.utils.ListenerRegistration;
Expand Down Expand Up @@ -245,6 +244,26 @@ public Peer(NetworkParameters params, AbstractBlockChain blockChain, PeerAddress
this.versionMessage.appendToSubVer(thisSoftwareName, thisSoftwareVersion, null);
}

/** Deprecated: use the more specific event handler methods instead */
@Deprecated @SuppressWarnings("deprecation")
public void addEventListener(AbstractPeerEventListener listener) {
addEventListener(listener, Threading.USER_THREAD);
}

/** Deprecated: use the more specific event handler methods instead */
@Deprecated
public void addEventListener(AbstractPeerEventListener listener, Executor executor) {
addConnectionEventListener(executor, listener);
addDataEventListener(executor, listener);
}

/** Deprecated: use the more specific event handler methods instead */
@Deprecated
public void removeEventListener(AbstractPeerEventListener listener) {
removeConnectionEventListener(listener);
removeDataEventListener(listener);
}

/**
* Registers the given object as an event listener that will be invoked on the user thread. Note that listeners
* added this way will <b>not</b> receive {@link PeerEventListener#getData(Peer, GetDataMessage)} or
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.bitcoinj.core.listeners;

import org.bitcoinj.core.*;

import java.util.*;

/**
* For backwards compatibility only. Implements the block chain listener interfaces. Use the more specific interfaces
* instead.
*/
@Deprecated
public class AbstractBlockChainListener implements BlockChainListener {
@Override
public void notifyNewBestBlock(StoredBlock block) throws VerificationException {
}

@Override
public void reorganize(StoredBlock splitPoint, List<StoredBlock> oldBlocks, List<StoredBlock> newBlocks) throws VerificationException {
}

@Override
public void receiveFromBlock(Transaction tx, StoredBlock block, BlockChain.NewBlockType blockType, int relativityOffset) throws VerificationException {
}

@Override
public boolean notifyTransactionIsInBlock(Sha256Hash txHash, StoredBlock block, BlockChain.NewBlockType blockType, int relativityOffset) throws VerificationException {
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@

package org.bitcoinj.core.listeners;

import org.bitcoinj.core.Peer;
import java.util.Set;
import org.bitcoinj.core.PeerAddress;
import org.bitcoinj.core.*;

import java.util.*;

/**
* Convenience implementation of {@link PeerEventListener}.
* Deprecated: implement the more specific event listener interfaces instead to fill out only what you need
*/
@Deprecated
public abstract class AbstractPeerConnectionEventListener implements PeerConnectionEventListener {

@Override
public void onPeersDiscovered(Set<PeerAddress> peerAddresses) {
// Do nothing
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@
import java.util.List;

/**
* Convenience implementation of {@link PeerEventListener}.
* Deprecated: implement the more specific event listener interfaces instead to fill out only what you need
*/
@Deprecated
public abstract class AbstractPeerDataEventListener implements PeerDataEventListener {
@Override
public void onBlocksDownloaded(Peer peer, Block block, @Nullable FilteredBlock filteredBlock, int blocksLeft) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@
import java.util.Set;

/**
* Convenience implementation of {@link PeerEventListener}.
* Deprecated: implement the more specific event listener interfaces instead to fill out only what you need
*/
@Deprecated
public abstract class AbstractPeerEventListener extends AbstractPeerDataEventListener implements PeerConnectionEventListener {
@Override
public void onBlocksDownloaded(Peer peer, Block block, @Nullable FilteredBlock filteredBlock, int blocksLeft) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@
import java.util.List;

/**
* Convenience implementation of {@link WalletEventListener}.
* Deprecated: implement the more specific event listener interfaces instead.
*/
@Deprecated
public abstract class AbstractWalletEventListener extends AbstractKeyChainEventListener implements WalletEventListener {
@Override
public void onCoinsReceived(Wallet wallet, Transaction tx, Coin prevBalance, Coin newBalance) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.bitcoinj.core.listeners;

/**
* Old interface for backwards compatibility. Implement the more specific interfaces instead.
*/
@Deprecated
public interface BlockChainListener extends NewBestBlockListener, TransactionReceivedInBlockListener, ReorganizeListener {
}

0 comments on commit fc9ae41

Please sign in to comment.