Deprecated API


Contents
Deprecated Classes
net.i2p.util.CachingByteArrayOutputStream
          unused 
net.i2p.client.naming.EepGetAndAddNamingService
          use HostsTxtNamingService.put() 
net.i2p.router.networkdb.kademlia.ExploreKeySelectorJob
          unused, see comments in KNDF 
net.i2p.router.tunnel.HashSetIVValidator
          unused 
net.i2p.data.i2np.I2NPMessageReader
          unused 
net.i2p.client.streaming.I2PSocketManagerFull
            
org.klomp.snark.PeerMonitorTask
          unused, for command line client only, commented out in Snark.java 
net.i2p.router.RouterDoSThrottle
          unused 
org.klomp.snark.web.RunStandalone
          does not work 
net.i2p.util.SimpleScheduler
          in 0.9.20, use SimpleTimer2 instead 
org.klomp.snark.SnarkShutdown
          unused 
net.i2p.router.tunnel.TrivialRouterPreprocessor
          unused 
net.i2p.BOB.UDPIOthread
          incomplete, unused 
 

Deprecated Fields
net.i2p.data.DataHelper.BOOLEAN_LENGTH
          unused 
net.i2p.data.DataHelper.BOOLEAN_UNKNOWN
          unused 
net.i2p.router.Router.CAPABILITY_NEW_TUNNEL
          unused 
net.i2p.router.transport.udp.UDPTransport.DEFAULT_INTERNAL_PORT
          unused 
net.i2p.i2ptunnel.I2PTunnelClient.dests
          why protected? Is anybody using out-of-tree? Protected from the beginning (2004) 
net.i2p.data.Signature.FAKE_SIGNATURE
          to be removed 
net.i2p.client.streaming.I2PSocketManagerFactory.PROP_MANAGER
            
net.i2p.crypto.KeyGenerator.PUBKEY_EXPONENT_SIZE
          use getElGamalExponentSize() which allows override in the properties 
 

Deprecated Methods
net.i2p.router.RouterThrottleImpl.acceptNetDbLookupRequest(Hash)
          unused, function moved to netdb 
net.i2p.crypto.HMAC256Generator.acquire()
          unused (not even by Syndie) 
net.i2p.crypto.CryptixAESKeyCache.acquireKey()
          unused, keys are now cached in the SessionKey objects 
net.i2p.router.util.PriBlockingQueue.add(E)
          use offer(o) 
net.i2p.router.transport.udp.UDPSender.add(UDPPacket, int)
          use add(packet) 
net.i2p.router.JobImpl.addedToQueue()
          As of 0.8.1, this is a noop, as it just adds classes to the log manager class list for no good reason. Logging in jobs is almost always set explicitly rather than by class name. 
net.i2p.stat.RateStat.addRate(long)
           
net.i2p.util.InternalServerSocket.bind(SocketAddress)
          unsupported 
net.i2p.util.InternalSocket.bind(SocketAddress)
          unsupported 
net.i2p.util.InternalServerSocket.bind(SocketAddress, int)
          unsupported 
net.i2p.crypto.HMACGenerator.calculate(SessionKey, byte[])
          unused (not even by Syndie) 
net.i2p.crypto.HMAC256Generator.calculate(SessionKey, byte[])
          unused (not even by Syndie) 
net.i2p.crypto.DSAEngine.calculateHash(InputStream)
          unused 
org.klomp.snark.Peer.compareTo(Peer)
          unused? 
org.klomp.snark.PeerID.compareTo(PeerID)
          unused? and will NPE now that address can be null? 
net.i2p.util.InternalSocket.connect(SocketAddress)
          unsupported 
net.i2p.util.InternalSocket.connect(SocketAddress, int)
          unsupported 
net.i2p.router.peermanager.ProfileOrganizer.countWellIntegratedPeers()
          use ProfileManager.getPeersByCapability('f').size() 
net.i2p.client.I2PSimpleClient.createDestination(OutputStream)
          Don't do this 
net.i2p.client.I2PSimpleClient.createDestination(OutputStream, Certificate)
          Don't do this 
net.i2p.client.I2PSimpleClient.createDestination(OutputStream, SigType)
          Don't do this 
net.i2p.router.tunnel.HopProcessor.createValidator()
          unused 
net.i2p.crypto.ElGamalAESEngine.decrypt(byte[], PrivateKey)
          specify the key manager! 
net.i2p.data.router.RouterInfo.delCapability(char)
          unused 
net.i2p.i2ptunnel.I2PTunnel.destFromName(String)
          Don't use i2ptunnel for lookup! Use I2PAppContext.getGlobalContext().namingService().lookup(name) from i2p.jar 
net.i2p.internal.PoisonI2CPMessage.doReadMessage(InputStream, int)
          don't do this 
net.i2p.internal.PoisonI2CPMessage.doWriteMessage()
          don't do this 
net.i2p.crypto.ElGamalAESEngine.encrypt(byte[], PublicKey, SessionKey, long)
          unused 
net.i2p.crypto.ElGamalAESEngine.encrypt(byte[], PublicKey, SessionKey, Set, long)
          unused 
net.i2p.crypto.eddsa.EdDSAEngine.engineGetParameter(String)
            
net.i2p.crypto.eddsa.EdDSAEngine.engineSetParameter(String, Object)
          replaced with  
net.i2p.data.DataHelper.eq(byte, byte)
          inefficient 
net.i2p.data.DataHelper.eq(int, int)
          inefficient 
net.i2p.data.DataHelper.eq(long, long)
          inefficient 
net.i2p.util.ShellCommand.execute(String)
          unused 
net.i2p.util.ShellCommand.executeAndWait(String)
          unused 
net.i2p.util.ShellCommand.executeAndWaitTimed(String, int)
          unused 
net.i2p.util.ShellCommand.executeSilent(String)
          unused 
net.i2p.router.crypto.TransientSessionKeyManager.failTags(PublicKey)
          unused and rather drastic 
net.i2p.data.DataHelper.fromBoolean(byte[], int)
          unused 
net.i2p.data.DataHelper.fromHexString(String)
          unused 
net.i2p.crypto.SigUtil.fromJavaKey(RSAPrivateKey, SigType)
          unused 
net.i2p.router.JobImpl.getAddedBy()
            
net.i2p.router.peermanager.DBHistory.getAvgDelayBetweenLookupsReceived()
          unused 
net.i2p.util.InternalServerSocket.getChannel()
          unsupported 
net.i2p.util.InternalSocket.getChannel()
          unsupported 
net.i2p.client.streaming.I2PSocket.getChannel()
            
net.i2p.client.streaming.I2PServerSocket.getChannel()
            
net.i2p.client.streaming.impl.I2PSocketFull.getChannel()
            
net.i2p.client.streaming.impl.I2PServerSocketFull.getChannel()
            
net.i2p.i2ptunnel.TunnelController.getClientOptions()
          why would you want this? Use getClientOptionProps() instead 
net.i2p.router.OutNetMessage.getCreatedBy()
            
net.i2p.router.transport.udp.PeerState.getCurrentSecondECNReceived()
          unused, ECNs are never sent, always returns false 
net.i2p.data.i2np.DeliveryInstructions.getDelayRequested()
          unused 
net.i2p.data.i2np.DeliveryInstructions.getDelaySeconds()
          unused 
net.i2p.sam.SAMBridge.getDestination(String)
          unused 
net.i2p.data.i2np.DeliveryInstructions.getEncrypted()
          unused 
net.i2p.data.i2np.DeliveryInstructions.getEncryptionKey()
          unused 
net.i2p.util.ShellCommand.getErrorStream()
          unused 
net.i2p.data.router.RouterAddress.getExpiration()
          unused for now 
net.i2p.data.router.RouterAddress.getExpirationTime()
          unused for now 
net.i2p.router.peermanager.DBHistory.getFailedLookups()
          unused 
net.i2p.router.Router.getHigherVersionSeen()
          unused 
net.i2p.util.InternalServerSocket.getInetAddress()
          unsupported 
net.i2p.util.InternalSocket.getInetAddress()
          unsupported 
net.i2p.util.ShellCommand.getInputStream()
          unused 
net.i2p.util.SimpleScheduler.getInstance()
          in 0.9.20, replaced by SimpleTimer2 
net.i2p.util.SimpleTimer.getInstance()
          use SimpleTimer2 
net.i2p.client.streaming.impl.RetransmissionTimer.getInstance()
          Don't use this to prestart threads, this is no longer a static instance 
net.i2p.util.InternalSocket.getKeepAlive()
          unsupported 
net.i2p.client.streaming.impl.PacketLocal.getKeyUsed()
          should always return null 
net.i2p.router.Router.getKillVMOnEnd()
          unused 
net.i2p.i2ptunnel.I2PTunnelRunner.getLastActivityOn()
          unused 
net.i2p.i2ptunnel.I2PTunnelOutproxyRunner.getLastActivityOn()
          unused 
net.i2p.stat.Frequency.getLastEvent()
          unused 
net.i2p.router.peermanager.DBHistory.getLastLookupReceived()
          unused 
net.i2p.util.InternalSocket.getLocalAddress()
          unsupported 
net.i2p.util.InternalSocket.getLocalPort()
          unsupported 
net.i2p.util.InternalServerSocket.getLocalSocketAddress()
          unsupported 
net.i2p.util.InternalSocket.getLocalSocketAddress()
          unsupported 
net.i2p.router.peermanager.DBHistory.getLookupReplyDuplicate()
          unused 
net.i2p.router.peermanager.DBHistory.getLookupReplyInvalid()
          unused 
net.i2p.router.peermanager.DBHistory.getLookupReplyNew()
          unused 
net.i2p.router.peermanager.DBHistory.getLookupReplyOld()
          unused 
net.i2p.router.peermanager.DBHistory.getLookupsReceived()
          unused 
net.i2p.stat.Frequency.getMinAverageInterval()
          unused 
net.i2p.util.InternalSocket.getOOBInline()
          unsupported 
net.i2p.data.router.RouterInfo.getOptions()
          use getOptionsMap() 
net.i2p.data.router.RouterAddress.getOptions()
          use getOptionsMap() 
net.i2p.util.ShellCommand.getOutputStream()
          unused 
net.i2p.data.router.RouterInfo.getPeers()
          Implemented here but unused elsewhere 
net.i2p.util.InternalSocket.getPort()
          unsupported 
net.i2p.router.CommSystemFacade.getReachabilityStatus()
          use getStatus() 
net.i2p.util.InternalServerSocket.getReceiveBufferSize()
          unsupported 
net.i2p.util.InternalSocket.getReceiveBufferSize()
          unsupported 
net.i2p.client.streaming.impl.ConnectionOptions.getReceiveWindow()
          This doesn't appear to be used. 
net.i2p.util.InternalSocket.getRemoteSocketAddress()
          unsupported 
net.i2p.router.web.ConfigNetHelper.getRequireIntroductionsChecked()
          unused, to be fixed if needed 
net.i2p.util.InternalServerSocket.getReuseAddress()
          unsupported 
net.i2p.util.InternalSocket.getReuseAddress()
          unsupported 
net.i2p.util.InternalSocket.getSendBufferSize()
          unsupported 
net.i2p.data.LeaseSet.getSigningKey()
          unused 
net.i2p.util.InternalSocket.getSoLinger()
          unsupported 
net.i2p.router.peermanager.DBHistory.getSuccessfulLookups()
          unused 
net.i2p.i2ptunnel.TunnelController.getSummary(StringBuilder)
          unused 
net.i2p.client.streaming.impl.PacketLocal.getTagsSent()
          should always return null or an empty set 
net.i2p.util.InternalSocket.getTcpNoDelay()
          unsupported 
net.i2p.router.OutNetMessage.getTimestamp(String)
          unused 
net.i2p.router.OutNetMessage.getTimestamps()
          unused 
net.i2p.util.InternalSocket.getTrafficClass()
          unsupported 
net.i2p.router.TunnelManagerFacade.getTunnelInfo(TunnelId)
          unused 
net.i2p.router.dummy.DummyTunnelManagerFacade.getTunnelInfo(TunnelId)
          unused 
net.i2p.router.tunnel.pool.TunnelPoolManager.getTunnelInfo(TunnelId)
          unused 
net.i2p.data.DataHelper.getUTF8(StringBuffer)
          unused 
net.i2p.I2PAppContext.hmac256()
          used only by syndie 
net.i2p.client.streaming.impl.I2PSocketManagerFull.init(I2PAppContext, I2PSession, Properties, String)
          use 4-arg constructor 
net.i2p.util.InternalServerSocket.isBound()
          unsupported 
net.i2p.util.InternalSocket.isBound()
          unsupported 
net.i2p.util.InternalServerSocket.isClosed()
          unsupported 
net.i2p.util.InternalSocket.isConnected()
          unsupported 
net.i2p.i2ptunnel.I2PTunnelRunner.isFinished()
          unused 
net.i2p.i2ptunnel.I2PTunnelOutproxyRunner.isFinished()
          unused 
net.i2p.util.InternalSocket.isInputShutdown()
          unsupported 
net.i2p.router.JobQueue.isJobActive(Job)
          unused 
net.i2p.util.InternalSocket.isOutputShutdown()
          unsupported 
org.klomp.snark.Peer.isRequesting(int)
          deadlocks 
org.klomp.snark.PeerState.isRequesting(int)
          deadlocks 
net.i2p.router.util.PriBlockingQueue.offer(E, long, TimeUnit)
          use offer(o) 
net.i2p.data.i2cp.I2CPMessageReader.pauseReading()
          unused 
net.i2p.data.i2np.I2NPMessageReader.pauseReading()
          unused 
net.metanotion.util.skiplist.SkipList.print()
          goes to System.out 
net.metanotion.util.skiplist.SkipList.printSL()
          goes to System.out 
net.i2p.router.util.PriBlockingQueue.put(E)
          use offer(o) 
net.i2p.router.transport.udp.UDPPacketReader.RelayResponseReader.readAliceIP(byte[], int)
          unused 
net.i2p.router.transport.udp.UDPPacketReader.RelayResponseReader.readAliceIPSize()
          unused 
net.i2p.router.transport.udp.UDPPacketReader.RelayResponseReader.readAlicePort()
          unused 
net.i2p.data.DataHelper.readBoolean(InputStream)
          unused 
net.i2p.data.i2np.I2NPMessageImpl.readBytes(InputStream)
          unused 
net.i2p.data.i2np.GarlicClove.readBytes(InputStream)
          unused, use byte array method to avoid copying 
net.i2p.data.i2np.FastI2NPMessageImpl.readBytes(InputStream)
          unused 
net.i2p.data.i2np.DeliveryInstructions.readBytes(InputStream)
          unused 
net.i2p.data.i2np.I2NPMessageImpl.readBytes(InputStream, int, byte[])
          unused 
net.i2p.data.i2np.FastI2NPMessageImpl.readBytes(InputStream, int, byte[])
          unused 
net.i2p.data.i2np.I2NPMessage.readBytes(InputStream, int, byte[])
          unused 
net.i2p.data.DataHelper.readLine(InputStream, Sha256Standalone)
          use MessageDigest version 
net.i2p.data.DataHelper.readLine(InputStream, StringBuffer)
          use StringBuilder version 
net.i2p.data.DataHelper.readLine(InputStream, StringBuffer, Sha256Standalone)
          use StringBuilder / MessageDigest version 
net.i2p.data.DataHelper.readLine(InputStream, StringBuilder, Sha256Standalone)
          use MessageDigest version 
net.i2p.data.i2np.I2NPMessageHandler.readMessage(InputStream)
          use the byte array method to avoid an extra copy if you have it 
net.i2p.router.CommSystemFacade.recheckReachability()
          unused 
net.i2p.router.transport.TransportImpl.recheckReachability()
          unused 
net.i2p.router.transport.Transport.recheckReachability()
          unused 
net.i2p.router.transport.CommSystemFacadeImpl.recheckReachability()
          unused 
net.i2p.router.transport.TransportManager.recheckReachability()
          unused 
net.i2p.router.transport.udp.UDPTransport.recheckReachability()
          unused 
net.i2p.data.i2np.I2NPMessageImpl.registerBuilder(I2NPMessageImpl.Builder, int)
          unused 
net.i2p.crypto.CryptixAESKeyCache.releaseKey(CryptixAESKeyCache.KeyCacheEntry)
          unused, keys are now cached in the SessionKey objects 
net.i2p.data.i2cp.RequestLeaseSetMessage.remoteEndpoint(int)
          unused - presumably he meant remove? 
net.i2p.router.Router.removeConfigSetting(String)
          use saveConfig(String name, String value) or saveConfig(Map toAdd, Set toRemove) 
net.i2p.stat.RateStat.removeRate(long)
           
net.i2p.router.web.SummaryRenderer.render(I2PAppContext, OutputStream, String)
          unsed 
net.i2p.router.web.StatSummarizer.renderPng(OutputStream, String)
          unused 
net.i2p.router.JobQueue.renderStatusHTML(Writer)
          moved to router console 
net.i2p.router.Banlist.renderStatusHTML(Writer)
          moved to router console 
net.i2p.router.client.ClientManagerFacadeImpl.renderStatusHTML(Writer)
          unused 
net.i2p.router.client.ClientManager.renderStatusHTML(Writer)
          unused 
net.i2p.router.peermanager.PeerManagerFacadeImpl.renderStatusHTML(Writer)
          moved to routerconsole 
net.i2p.router.transport.FIFOBandwidthLimiter.renderStatusHTML(Writer)
          not worth translating 
net.i2p.router.transport.OutboundMessageRegistry.renderStatusHTML(Writer)
          unused 
net.i2p.router.tunnel.TunnelDispatcher.renderStatusHTML(Writer)
          moved to router console 
net.i2p.router.tunnel.pool.TunnelPoolManager.renderStatusHTML(Writer)
          moved to routerconsole 
net.i2p.router.transport.udp.UDPPacket.requestInboundBandwidth()
          unused 
net.i2p.router.JobQueue.restart()
          do you really want to do this? 
net.i2p.data.i2cp.I2CPMessageReader.resumeReading()
          unused 
net.i2p.data.i2np.I2NPMessageReader.resumeReading()
          unused 
net.i2p.router.transport.udp.PeerState.retrieveACKBitfields()
          unused 
net.i2p.crypto.AESEngine.safeDecrypt(byte[], SessionKey, byte[])
          unused 
net.i2p.crypto.AESEngine.safeEncrypt(byte[], SessionKey, byte[], int)
          unused 
net.i2p.router.peermanager.PeerManagerFacadeImpl.selectRandomByCapability(char)
          unused 
net.i2p.router.peermanager.ProfileOrganizer.selectWellIntegratedPeers(int, Set, Set)
          unused 
net.i2p.router.peermanager.ProfileOrganizer.selectWellIntegratedPeers(int, Set, Set, int)
          unused 
net.i2p.util.InternalSocket.sendUrgentData(int)
          unsupported 
org.cybergarage.upnp.ArgumentList.set(ArgumentList)
            
org.cybergarage.upnp.Action.setArgumentValues(ArgumentList)
          You should use one of the following methods instead:
- Action.setInArgumentValues(ArgumentList)
- Action.setOutArgumentValues(ArgumentList)
 
net.i2p.router.Router.setConfigFilename(String)
          unused 
net.i2p.router.Router.setConfigSetting(String, String)
          use saveConfig(String name, String value) or saveConfig(Map toAdd, Set toRemove) 
net.i2p.util.LogManager.setConsoleBufferSize(int)
          unused 
net.i2p.data.i2np.DeliveryInstructions.setDelayRequested(boolean)
          unused 
net.i2p.data.i2np.DeliveryInstructions.setDelaySeconds(long)
          unused 
net.i2p.util.LogManager.setDisplayOnScreen(boolean)
          unused 
net.i2p.util.LogManager.setDisplayOnScreenLevel(int)
          unused 
net.i2p.data.i2np.DeliveryInstructions.setEncrypted(boolean)
          unused 
net.i2p.data.i2np.DeliveryInstructions.setEncryptionKey(SessionKey)
          unused 
net.i2p.data.router.RouterAddress.setExpiration(Date)
          unused for now 
net.i2p.router.Router.setHigherVersionSeen(boolean)
          unused 
net.i2p.router.transport.FIFOBandwidthLimiter.setInboundUnlimited(boolean)
          unused for now, we are always limited 
org.klomp.snark.Peer.setInteresting(boolean)
          unused 
net.i2p.util.InternalSocket.setKeepAlive(boolean)
          unsupported 
net.i2p.router.transport.udp.PeerState.setKeyEstablishedTime(long)
          unused 
net.i2p.client.streaming.impl.PacketLocal.setKeyUsed(SessionKey)
          I2PSession throws out the tags 
net.i2p.router.transport.udp.PeerState.setLastACKSend(long)
          unused 
net.i2p.router.transport.udp.PeerState.setNextCipherKey(SessionKey)
          unused 
net.i2p.router.transport.udp.PeerState.setNextMACKey(SessionKey)
          unused 
net.i2p.util.InternalSocket.setOOBInline(boolean)
          unsupported 
net.i2p.data.router.RouterAddress.setOptions(Properties)
          unused, use 3-arg constructor 
net.i2p.router.transport.FIFOBandwidthLimiter.setOutboundUnlimited(boolean)
          unused for now, we are always limited 
net.i2p.router.tunnel.pool.PooledTunnelCreatorConfig.setPairedTunnel(TunnelInfo)
          Fix memory leaks caused by references if you need to use pairedTunnel 
net.i2p.router.MessageHistory.setPauseFlushes(boolean)
          unused 
net.i2p.data.router.RouterInfo.setPeers(Set)
          Implemented here but unused elsewhere 
net.i2p.router.RouterContext.setProperty(String, String)
          Use Router.saveConfig() 
net.i2p.util.InternalServerSocket.setReceiveBufferSize(int)
          unsupported 
net.i2p.util.InternalSocket.setReceiveBufferSize(int)
          unsupported 
net.i2p.util.InternalServerSocket.setReuseAddress(boolean)
          unsupported 
net.i2p.util.InternalSocket.setReuseAddress(boolean)
          unsupported 
net.i2p.data.DatabaseEntry.setRoutingKey(Hash)
          unused 
net.i2p.util.InternalSocket.setSendBufferSize(int)
          unsupported 
net.i2p.util.InternalSocket.setSoLinger(boolean, int)
          unsupported 
net.i2p.client.streaming.impl.PacketLocal.setTagsSent(Set)
          I2PSession throws out the tags 
net.i2p.util.InternalSocket.setTcpNoDelay(boolean)
          unsupported 
net.i2p.router.tunnel.pool.PooledTunnelCreatorConfig.setTestJob(TestJob)
          unused, which makes _testJob unused - why is it here 
net.i2p.util.InternalSocket.setTrafficClass(int)
          unsupported 
net.i2p.data.router.RouterAddress.setTransportStyle(String)
          unused, use 3-arg constructor 
net.i2p.util.InternalSocket.shutdownInput()
          unsupported 
net.i2p.util.InternalSocket.shutdownOutput()
          unsupported 
net.i2p.I2PAppContext.simpleScheduler()
          in 0.9.20, use simpleTimer2() 
net.i2p.I2PAppContext.simpleTimer()
          use SimpleTimer2 
net.i2p.router.KeyManager.startup()
          we never read keys in anymore 
net.i2p.BOB.BOB.stop()
          unused 
net.i2p.router.peermanager.ProfileManagerImpl.summarizePeers(int)
          unused 
net.i2p.router.JobQueue.timingUpdated()
          contention - see JobTiming.setStartAfter() comments 
net.i2p.data.DataHelper.toBoolean(byte[], int, boolean)
          unused 
net.i2p.data.DataHelper.toBoolean(byte[], int, Boolean)
          unused 
net.i2p.data.DataHelper.toDate(Date)
          unused 
net.i2p.data.DataHelper.toDecimalString(byte[], int)
          unused 
net.i2p.crypto.SigUtil.toJavaRSAKey(SigningPublicKey)
          unused 
net.i2p.data.DataHelper.toProperties(byte[], int, Properties)
           
net.i2p.data.LeaseSet.verifySignature(SigningPublicKey)
          revocation unused 
net.i2p.data.DataHelper.write(OutputStream, byte[], Sha256Standalone)
          use MessageDigest version 
net.i2p.data.DataHelper.writeBoolean(OutputStream, Boolean)
          unused 
net.i2p.data.i2np.I2NPMessageImpl.writeBytes(OutputStream)
          unused 
net.i2p.data.i2np.GarlicClove.writeBytes(OutputStream)
          unused, use byte array method to avoid copying 
net.i2p.data.i2np.FastI2NPMessageImpl.writeBytes(OutputStream)
          unused 
net.i2p.data.i2np.DeliveryInstructions.writeBytes(OutputStream)
          unused 
 

Deprecated Constructors
net.i2p.router.transport.GetBidsJob(RouterContext, TransportManager, OutNetMessage)
          unused, see static getBids() 
net.i2p.router.tunnel.HopProcessor(I2PAppContext, HopConfig)
          unused 
org.bouncycastle.oldcrypto.macs.I2PHMac(MessageDigest)
          Use javax.crypto.Mac 
net.i2p.client.streaming.impl.I2PSocketManagerFull()
          use 4-arg constructor 
net.i2p.i2ptunnel.I2PTunnelRunner(Socket, I2PSocket, Object, byte[], byte[], List)
          use FailCallback constructor 
net.i2p.i2ptunnel.I2PTunnelRunner(Socket, I2PSocket, Object, byte[], byte[], List, Runnable)
          use FailCallback constructor 
net.i2p.i2ptunnel.I2PTunnelRunner(Socket, I2PSocket, Object, byte[], List)
          use FailCallback constructor 
net.i2p.i2ptunnel.I2PTunnelRunner(Socket, I2PSocket, Object, byte[], List, Runnable)
          use FailCallback constructor 
net.i2p.router.tunnel.InboundEndpointProcessor(RouterContext, TunnelCreatorConfig)
          unused 
net.i2p.util.SimpleScheduler(I2PAppContext)
          in 0.9.20, replaced by SimpleTimer2 
net.i2p.util.SimpleTimer(I2PAppContext)
          use SimpleTimer2