THRIFT-275. rb: Remove deprecated classes from Ruby library

This patch removes all the deprecation stuff and the t*.rb classes that were only placeholders. In addition, I've changed the implementations of some "abstract" methods to throw NotImplementedError instead of returning nil, and fixed the test accordingly. Finally, I removed the no longer required borrow and consume methods from all the transport implementations that had them. (Borrow and consume have been supplanted by the thrift_native package.) 


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@757668 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/rb/lib/thrift.rb b/lib/rb/lib/thrift.rb
index fef7045..df447a0 100644
--- a/lib/rb/lib/thrift.rb
+++ b/lib/rb/lib/thrift.rb
@@ -24,7 +24,6 @@
   DEPRECATION = false unless const_defined? :DEPRECATION
 end
 
-require 'thrift/deprecation'
 require 'thrift/exceptions'
 require 'thrift/types'
 require 'thrift/processor'
diff --git a/lib/rb/lib/thrift/client.rb b/lib/rb/lib/thrift/client.rb
index 5934eea..5b30f01 100644
--- a/lib/rb/lib/thrift/client.rb
+++ b/lib/rb/lib/thrift/client.rb
@@ -59,5 +59,4 @@
       end
     end
   end
-  deprecate_module! :ThriftClient => Client
 end
diff --git a/lib/rb/lib/thrift/deprecation.rb b/lib/rb/lib/thrift/deprecation.rb
deleted file mode 100644
index 8b15a16..0000000
--- a/lib/rb/lib/thrift/deprecation.rb
+++ /dev/null
@@ -1,174 +0,0 @@
-# 
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# 
-
-# provide a backwards-compatible wrapper API and deprecate it
-
-module Thrift
-  DEPRECATION = true unless const_defined?(:DEPRECATION)
-end
-
-class Module
-  # Wraps the given methods to print a warning and call the real method
-  # Example:
-  #   deprecate! :readAll => :read_all
-  #--
-  # Yeah, this is ugly, passing a string to module_eval, but unfortunately
-  # using a block removes the ability to pass blocks to the defined method
-  # and breaks spec
-  def deprecate!(methods)
-    return unless Thrift::DEPRECATION
-    methods.each_pair do |old, new|
-      module_eval <<-EOF
-        def #{old}(*args, &block)
-          old, new = #{[old,new].inspect}
-          STDERR.puts "Warning: calling deprecated method \#{self.is_a?(Module) ? "\#{self}." : "\#{self.class}#"}\#{old}"
-          STDERR.puts "  from \#{caller.first}"
-          target = (self.is_a?(Module) ? (class << self;self;end) : self.class)
-          target.send :define_method, old, target.instance_method(new) # unwrap
-          target.instance_method(new).bind(self).call(*args, &block)
-        end
-      EOF
-    end
-  end
-end
-
-module Thrift::DeprecationProxy # :nodoc:
-  # there's a really weird bug in Ruby where class variables behave wrong
-  # when used in a Class.new or #class_eval rather than in a class foo block.
-  CLASS_MAPPING = {}
-  MODULE_MAPPING = {}
-  def self.new_class(obj, name)
-    klass_id = CLASS_MAPPING.size
-    CLASS_MAPPING[klass_id] = [obj, name, true]
-    klass = Class.new(obj) do
-      klass = self
-      instance_methods.sort.reject { |x| [:__id__,:__send__].include? x.to_sym }.each do |sym|
-        undef_method sym
-      end
-      define_method :__thrift_deprecation_proxy_klass_id do
-        klass_id
-      end
-      def method_missing(sym, *args, &block)
-        klass_id = __thrift_deprecation_proxy_klass_id
-        obj, name, warned = CLASS_MAPPING[klass_id]
-        obj.instance_method(sym).bind(self).call(*args, &block)
-      end
-      (class << self;self;end).class_eval do
-        instance_methods.sort.reject { |x| [:__id__,:__send__].include? x.to_sym }.each do |sym|
-          undef_method sym
-        end
-        define_method :__thrift_deprecation_proxy_klass do
-          [klass, klass_id]
-        end
-        def method_missing(sym, *args, &block)
-          klass, klass_id = __thrift_deprecation_proxy_klass
-          obj, name, warned = CLASS_MAPPING[klass_id]
-          unless warned
-            STDERR.puts "Warning: class #{name} is deprecated"
-            STDERR.puts "  from #{Thrift::DeprecationProxy.process_caller(caller)}"
-            CLASS_MAPPING[klass_id][2] = true
-          end
-          if klass.__id__ == self.__id__
-            obj.send sym, *args, &block
-          else
-            obj.method(sym).unbind.bind(self).call(*args, &block)
-          end
-        end
-      end
-    end
-    CLASS_MAPPING[klass_id][2] = false
-    klass
-  end
-  def self.new_module(obj, name)
-    mod_id = MODULE_MAPPING.size
-    MODULE_MAPPING[mod_id] = [obj, name, true]
-    mod = Module.new do
-      include obj
-      instance_methods.sort.reject { |x| [:__id__,:__send__].include? x.to_sym }.each do |sym|
-        undef_method sym
-      end
-      define_method :__thrift_deprecation_proxy_module_id do
-        mod_id
-      end
-      def method_missing(sym, *args, &block)
-        mod_id = __thrift_deprecation_proxy_module_id
-        obj, name, warned = MODULE_MAPPING[mod_id]
-        unless warned
-          STDERR.puts "Warning: module #{name} is deprecated"
-          STDERR.puts "  from #{Thrift::DeprecationProxy.process_caller(caller)}"
-          MODULE_MAPPING[mod_id][2] = true
-        end
-        obj.instance_method(sym).bind(self).call(*args, &block)
-      end
-      (class << self;self;end).class_eval do
-        instance_methods.sort.reject { |x| [:__id__,:__send__].include? x.to_sym }.each do |sym|
-          undef_method sym
-        end
-        define_method :__thrift_deprecation_proxy_module_id do
-          mod_id
-        end
-        def method_missing(sym, *args, &block)
-          mod_id = __thrift_deprecation_proxy_module_id
-          obj, name, warned = MODULE_MAPPING[mod_id]
-          unless warned
-            STDERR.puts "Warning: module #{name} is deprecated"
-            STDERR.puts "  from #{Thrift::DeprecationProxy.process_caller(caller)}"
-            MODULE_MAPPING[mod_id][2] = true
-          end
-          obj.send sym, *args, &block
-        end
-      end
-    end
-    MODULE_MAPPING[mod_id][2] = false
-    mod
-  end
-  def self.process_caller(stack)
-    dir = File.dirname(__FILE__)
-    stack.find { |frame| frame[0,dir.size] != dir }
-  end
-  def self.reset_deprecation_warnings
-    CLASS_MAPPING.each { |k,v| v[2] = false }
-    MODULE_MAPPING.each { |k,v| v[2] = false }
-  end
-end
-
-module Kernel
-  # Provides an alternate name for the class for deprecation purposes
-  # Example:
-  #   deprecate_class! :TBinaryProtocol => Thrift::BinaryProtocol
-  #--
-  # at the moment this only works for creating top-level constants
-  # if necessary, this can be extended to take something like :'Thrift::TBinaryProtocol'
-  # alternately, Module can be extended with a similar method
-  def deprecate_class!(klasses)
-    return unless Thrift::DEPRECATION
-    klasses.each_pair do |old, new|
-      raise "deprecate_class! expected Class, called with #{new}" unless new.is_a? Class
-      Object.const_set old, Thrift::DeprecationProxy.new_class(new, old)
-    end
-  end
-
-  # like deprecate_class! but for Modules
-  def deprecate_module!(modules)
-    return unless Thrift::DEPRECATION
-    modules.each_pair do |old, new|
-      Object.const_set old, Thrift::DeprecationProxy.new_module(new, old)
-    end
-  end
-end
diff --git a/lib/rb/lib/thrift/exceptions.rb b/lib/rb/lib/thrift/exceptions.rb
index 90afe8e..dda7089 100644
--- a/lib/rb/lib/thrift/exceptions.rb
+++ b/lib/rb/lib/thrift/exceptions.rb
@@ -26,7 +26,6 @@
 
     attr_reader :message
   end
-  deprecate_class! :TException => Exception
 
   class ApplicationException < Exception
 
@@ -80,5 +79,4 @@
     end
 
   end
-  deprecate_class! :TApplicationException => ApplicationException
 end
\ No newline at end of file
diff --git a/lib/rb/lib/thrift/processor.rb b/lib/rb/lib/thrift/processor.rb
index 4ec819a..5d9e0a1 100644
--- a/lib/rb/lib/thrift/processor.rb
+++ b/lib/rb/lib/thrift/processor.rb
@@ -54,5 +54,4 @@
       oprot.trans.flush
     end
   end
-  deprecate_module! :TProcessor => Processor
 end
diff --git a/lib/rb/lib/thrift/protocol.rb b/lib/rb/lib/thrift/protocol.rb
index e5ae4aa..adeddef 100644
--- a/lib/rb/lib/thrift/protocol.rb
+++ b/lib/rb/lib/thrift/protocol.rb
@@ -37,7 +37,6 @@
     end
 
   end
-  deprecate_class! :TProtocolException => ProtocolException
 
   class Protocol
 
@@ -55,173 +54,134 @@
     def write_message_begin(name, type, seqid)
       raise NotImplementedError
     end
-    deprecate! :writeMessageBegin => :write_message_begin
 
     def write_message_end; nil; end
-    deprecate! :writeMessageEnd => :write_message_end
 
     def write_struct_begin(name)
       raise NotImplementedError
     end
-    deprecate! :writeStructBegin => :write_struct_begin
 
     def write_struct_end; nil; end
-    deprecate! :writeStructEnd => :write_struct_end
 
     def write_field_begin(name, type, id)
       raise NotImplementedError
     end
-    deprecate! :writeFieldBegin => :write_field_begin
 
     def write_field_end; nil; end
-    deprecate! :writeFieldEnd => :write_field_end
 
     def write_field_stop
       raise NotImplementedError
     end
-    deprecate! :writeFieldStop => :write_field_stop
 
     def write_map_begin(ktype, vtype, size)
       raise NotImplementedError
     end
-    deprecate! :writeMapBegin => :write_map_begin
 
     def write_map_end; nil; end
-    deprecate! :writeMapEnd => :write_map_end
 
     def write_list_begin(etype, size)
       raise NotImplementedError
     end
-    deprecate! :writeListBegin => :write_list_begin
 
     def write_list_end; nil; end
-    deprecate! :writeListEnd => :write_list_end
 
     def write_set_begin(etype, size)
       raise NotImplementedError
     end
-    deprecate! :writeSetBegin => :write_set_begin
 
     def write_set_end; nil; end
-    deprecate! :writeSetEnd => :write_set_end
 
     def write_bool(bool)
       raise NotImplementedError
     end
-    deprecate! :writeBool => :write_bool
 
     def write_byte(byte)
       raise NotImplementedError
     end
-    deprecate! :writeByte => :write_byte
 
     def write_i16(i16)
       raise NotImplementedError
     end
-    deprecate! :writeI16 => :write_i16
 
     def write_i32(i32)
       raise NotImplementedError
     end
-    deprecate! :writeI32 => :write_i32
 
     def write_i64(i64)
       raise NotImplementedError
     end
-    deprecate! :writeI64 => :write_i64
 
     def write_double(dub)
       raise NotImplementedError
     end
-    deprecate! :writeDouble => :write_double
 
     def write_string(str)
       raise NotImplementedError
     end
-    deprecate! :writeString => :write_string
 
     def read_message_begin
       raise NotImplementedError
     end
-    deprecate! :readMessageBegin => :read_message_begin
 
     def read_message_end; nil; end
-    deprecate! :readMessageEnd => :read_message_end
 
     def read_struct_begin
       raise NotImplementedError
     end
-    deprecate! :readStructBegin => :read_struct_begin
 
     def read_struct_end; nil; end
-    deprecate! :readStructEnd => :read_struct_end
 
     def read_field_begin
       raise NotImplementedError
     end
-    deprecate! :readFieldBegin => :read_field_begin
 
     def read_field_end; nil; end
-    deprecate! :readFieldEnd => :read_field_end
 
     def read_map_begin
       raise NotImplementedError
     end
-    deprecate! :readMapBegin => :read_map_begin
 
     def read_map_end; nil; end
-    deprecate! :readMapEnd => :read_map_end
 
     def read_list_begin
       raise NotImplementedError
     end
-    deprecate! :readListBegin => :read_list_begin
 
     def read_list_end; nil; end
-    deprecate! :readListEnd => :read_list_end
 
     def read_set_begin
       raise NotImplementedError
     end
-    deprecate! :readSetBegin => :read_set_begin
 
     def read_set_end; nil; end
-    deprecate! :readSetEnd => :read_set_end
 
     def read_bool
       raise NotImplementedError
     end
-    deprecate! :readBool => :read_bool
 
     def read_byte
       raise NotImplementedError
     end
-    deprecate! :readByte => :read_byte
 
     def read_i16
       raise NotImplementedError
     end
-    deprecate! :readI16 => :read_i16
 
     def read_i32
       raise NotImplementedError
     end
-    deprecate! :readI32 => :read_i32
 
     def read_i64
       raise NotImplementedError
     end
-    deprecate! :readI64 => :read_i64
 
     def read_double
       raise NotImplementedError
     end
-    deprecate! :readDouble => :read_double
 
     def read_string
       raise NotImplementedError
     end
-    deprecate! :readString => :read_string
 
     def write_field(name, type, fid, value)
       write_field_begin(name, type, fid)
@@ -323,11 +283,10 @@
     end
 
   end
-  deprecate_class! :TProtocol => Protocol
 
   class ProtocolFactory
-    def get_protocol(trans); nil; end
-    deprecate! :getProtocol => :get_protocol
+    def get_protocol(trans)
+      raise NotImplementedError
+    end
   end
-  deprecate_class! :TProtocolFactory => ProtocolFactory
 end
diff --git a/lib/rb/lib/thrift/protocol/binaryprotocol.rb b/lib/rb/lib/thrift/protocol/binaryprotocol.rb
index 9a7a601..dd963f2 100644
--- a/lib/rb/lib/thrift/protocol/binaryprotocol.rb
+++ b/lib/rb/lib/thrift/protocol/binaryprotocol.rb
@@ -216,12 +216,10 @@
     end
 
   end
-  deprecate_class! :TBinaryProtocol => BinaryProtocol
 
   class BinaryProtocolFactory < ProtocolFactory
     def get_protocol(trans)
       return Thrift::BinaryProtocol.new(trans)
     end
   end
-  deprecate_class! :TBinaryProtocolFactory => BinaryProtocolFactory
 end
diff --git a/lib/rb/lib/thrift/protocol/tbinaryprotocol.rb b/lib/rb/lib/thrift/protocol/tbinaryprotocol.rb
deleted file mode 100644
index 32211b7..0000000
--- a/lib/rb/lib/thrift/protocol/tbinaryprotocol.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# 
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# 
-
-require 'thrift/deprecation'
-require 'thrift/protocol/binaryprotocol'
diff --git a/lib/rb/lib/thrift/protocol/tprotocol.rb b/lib/rb/lib/thrift/protocol/tprotocol.rb
deleted file mode 100644
index 2bd1de7..0000000
--- a/lib/rb/lib/thrift/protocol/tprotocol.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# 
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# 
-
-require 'thrift/deprecation'
-require 'thrift/protocol'
diff --git a/lib/rb/lib/thrift/server.rb b/lib/rb/lib/thrift/server.rb
index 841a3fc..bd42854 100644
--- a/lib/rb/lib/thrift/server.rb
+++ b/lib/rb/lib/thrift/server.rb
@@ -32,7 +32,6 @@
 
     def serve; nil; end
   end
-  deprecate_class! :TServer => Server
 
   class SimpleServer < Server
     def serve
@@ -56,7 +55,6 @@
       end
     end
   end
-  deprecate_class! :TSimpleServer => SimpleServer
 end
 
 # do *not* use fastthread
@@ -88,7 +86,6 @@
       end
     end
   end
-  deprecate_class! :TThreadedServer => ThreadedServer
 
   class ThreadPoolServer < Server
     def initialize(processor, serverTransport, transportFactory=nil, protocolFactory=nil, num=20)
@@ -142,5 +139,4 @@
       end
     end
   end
-  deprecate_class! :TThreadPoolServer => ThreadPoolServer
 end
diff --git a/lib/rb/lib/thrift/server/httpserver.rb b/lib/rb/lib/thrift/server/httpserver.rb
index c75d631..f26329f 100644
--- a/lib/rb/lib/thrift/server/httpserver.rb
+++ b/lib/rb/lib/thrift/server/httpserver.rb
@@ -59,5 +59,4 @@
       @server.run.join
     end
   end
-  deprecate_class! :TSimpleMongrelHTTPServer => SimpleMongrelHTTPServer
 end
diff --git a/lib/rb/lib/thrift/server/thttpserver.rb b/lib/rb/lib/thrift/server/thttpserver.rb
deleted file mode 100644
index f0abf0d..0000000
--- a/lib/rb/lib/thrift/server/thttpserver.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# 
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# 
-
-require 'thrift/deprecation'
-require 'thrift/server/httpserver'
diff --git a/lib/rb/lib/thrift/server/tserver.rb b/lib/rb/lib/thrift/server/tserver.rb
deleted file mode 100644
index 4066d42..0000000
--- a/lib/rb/lib/thrift/server/tserver.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# 
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# 
-
-require 'thrift/deprecation'
-require 'thrift/server'
diff --git a/lib/rb/lib/thrift/struct.rb b/lib/rb/lib/thrift/struct.rb
index 625badf..9789a41 100644
--- a/lib/rb/lib/thrift/struct.rb
+++ b/lib/rb/lib/thrift/struct.rb
@@ -292,5 +292,4 @@
         :element => field[:element] }
     end
   end
-  deprecate_module! :ThriftStruct => Struct
 end
diff --git a/lib/rb/lib/thrift/thrift.rb b/lib/rb/lib/thrift/thrift.rb
deleted file mode 100644
index cb5581c..0000000
--- a/lib/rb/lib/thrift/thrift.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-# 
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# 
-
-# This file kept for backwards compatability
-# require File.join(File.dirname(__FILE__), '../thrift')
-$:.unshift File.dirname(File.dirname(__FILE__))
-require 'thrift/deprecation'
-require 'thrift/types'
-require 'thrift/processor'
-require 'thrift/exceptions'
-require 'thrift/client'
-require 'thrift/struct'
-begin
-  require "thrift_native"
-rescue
-  puts "Could not load thrift_native libraries. Using pure ruby version."
-end
\ No newline at end of file
diff --git a/lib/rb/lib/thrift/transport.rb b/lib/rb/lib/thrift/transport.rb
index 00c5bee..6c75ce8 100644
--- a/lib/rb/lib/thrift/transport.rb
+++ b/lib/rb/lib/thrift/transport.rb
@@ -32,15 +32,10 @@
       @type = type
     end
   end
-  deprecate_class! :TTransportException => TransportException
 
-# Transport is basically an abstract class, but isn't raising NotImplementedError
-# TODO: Think about if this is the right thing - Kevin Clark - 3/27/08
   class Transport
     def open?; end
-    deprecate! :isOpen => :open?
-    deprecate! :is_open? => :open?
-
+    
     def open; end
 
     def close; end
@@ -59,33 +54,34 @@
     
       buf
     end
-    deprecate! :readAll => :read_all
   
     def write(buf); end
     alias_method :<<, :write
 
     def flush; end
   end
-  deprecate_class! :TTransport => Transport
 
   class ServerTransport
-    def listen; nil; end
+    def listen
+      raise NotImplementedError
+    end
 
-    def accept; nil; end
-
+    def accept
+      raise NotImplementedError
+    end
+      
     def close; nil; end
 
-    def closed?; nil; end
+    def closed?
+      raise NotImplementedError
+    end
   end
-  deprecate_class! :TServerTransport => ServerTransport
 
   class TransportFactory
     def get_transport(trans)
       return trans
     end
-    deprecate! :getTransport => :get_transport
   end
-  deprecate_class! :TTransportFactory => TransportFactory
 
   class BufferedTransport < Transport
     DEFAULT_BUFFER = 4096
@@ -131,34 +127,13 @@
       
       @transport.flush
     end
-
-    def borrow(requested_length = 0)
-      # $stderr.puts "#{Time.now.to_f} Have #{@rbuf.length} asking for #{requested_length.inspect}"
-      return @rbuf if @rbuf.length > requested_length
-      
-      if @rbuf.length < DEFAULT_BUFFER
-        @rbuf << @transport.read([requested_length, DEFAULT_BUFFER].max)
-      end
-      
-      if @rbuf.length < requested_length
-        @rbuf << @transport.read_all(requested_length - @rbuf.length)
-      end
-    
-      @rbuf
-    end
-    
-    def consume!(size)
-      @rbuf.slice!(0...size)
-    end
   end
-  deprecate_class! :TBufferedTransport => BufferedTransport
 
   class BufferedTransportFactory < TransportFactory
     def get_transport(transport)
       return BufferedTransport.new(transport)
     end
   end
-  deprecate_class! :TBufferedTransportFactory => BufferedTransportFactory
 
   class FramedTransport < Transport
     def initialize(transport, read=true, write=true)
@@ -211,17 +186,6 @@
       @wbuf = ''
     end
 
-    def borrow(requested_length = 0)
-      read_frame if @rbuf.empty?
-      # there isn't any more coming, so if it's not enough, it's an error.
-      raise EOFError if requested_length > @rbuf.size
-      @rbuf
-    end
-    
-    def consume!(size)
-      @rbuf.slice!(0...size)
-    end
-
     private
 
     def read_frame
@@ -230,14 +194,12 @@
       @rbuf = @transport.read_all(sz).dup # protect against later #slice!
     end
   end
-  deprecate_class! :TFramedTransport => FramedTransport
 
   class FramedTransportFactory < TransportFactory
     def get_transport(transport)
       return FramedTransport.new(transport)
     end
   end
-  deprecate_class! :TFramedTransportFactory => FramedTransportFactory
 
   class MemoryBuffer < Transport
     GARBAGE_BUFFER_SIZE = 4*(2**10) # 4kB
@@ -294,19 +256,6 @@
     def flush
     end
 
-    # For fast binary protocol access
-    def borrow(size = nil)
-      if size.nil?
-        @buf[@index..-1]
-      else
-        if size > available
-          raise EOFError # Memory buffers only get one shot.
-        else
-          @buf[@index, size]
-        end
-      end
-    end
-
     def inspect_buffer
       out = []
       for idx in 0...(@buf.size)
@@ -322,10 +271,7 @@
       end
       out.join(" ")
     end
-
-    alias_method :consume!, :read
   end
-  deprecate_class! :TMemoryBuffer => MemoryBuffer
 
   ## Very very simple implementation of wrapping two objects, one with a #read
   ## method and one with a #write method, into a transport for thrift.
@@ -343,5 +289,4 @@
     def close; @input.close; @output.close end
     def to_io; @input end # we're assuming this is used in a IO.select for reading
   end
-  deprecate_class! :TIOStreamTransport => IOStreamTransport
 end
diff --git a/lib/rb/lib/thrift/transport/httpclient.rb b/lib/rb/lib/thrift/transport/httpclient.rb
index b6b1e94..8a62ca2 100644
--- a/lib/rb/lib/thrift/transport/httpclient.rb
+++ b/lib/rb/lib/thrift/transport/httpclient.rb
@@ -44,5 +44,4 @@
       @outbuf = ""
     end
   end
-  deprecate_class! :THttpClient => HTTPClient
 end
diff --git a/lib/rb/lib/thrift/transport/socket.rb b/lib/rb/lib/thrift/transport/socket.rb
index d4ba3a7..49247ce 100644
--- a/lib/rb/lib/thrift/transport/socket.rb
+++ b/lib/rb/lib/thrift/transport/socket.rb
@@ -132,7 +132,6 @@
       @handle
     end
   end
-  deprecate_class! :TSocket => Socket
 
   class ServerSocket < ServerTransport
     # call-seq: initialize(host = nil, port)
@@ -173,5 +172,4 @@
 
     alias to_io handle
   end
-  deprecate_class! :TServerSocket => ServerSocket
 end
diff --git a/lib/rb/lib/thrift/transport/thttpclient.rb b/lib/rb/lib/thrift/transport/thttpclient.rb
deleted file mode 100644
index 9bb4256..0000000
--- a/lib/rb/lib/thrift/transport/thttpclient.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# 
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# 
-
-require 'thrift/deprecation'
-require 'thrift/transport/httpclient'
diff --git a/lib/rb/lib/thrift/transport/tsocket.rb b/lib/rb/lib/thrift/transport/tsocket.rb
deleted file mode 100644
index e58fedd..0000000
--- a/lib/rb/lib/thrift/transport/tsocket.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# 
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# 
-
-require 'thrift/deprecation'
-require 'thrift/transport/socket'
diff --git a/lib/rb/lib/thrift/transport/ttransport.rb b/lib/rb/lib/thrift/transport/ttransport.rb
deleted file mode 100644
index 4b74ed0..0000000
--- a/lib/rb/lib/thrift/transport/ttransport.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# 
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# 
-
-require 'thrift/deprecation'
-require 'thrift/transport'
diff --git a/lib/rb/lib/thrift/types.rb b/lib/rb/lib/thrift/types.rb
index 6d027ce..6d70eb5 100644
--- a/lib/rb/lib/thrift/types.rb
+++ b/lib/rb/lib/thrift/types.rb
@@ -35,7 +35,6 @@
     SET = 14
     LIST = 15
   end
-  deprecate_module! :TType => Types
 
   class << self
     attr_accessor :type_checking
@@ -96,7 +95,6 @@
     REPLY = 2
     EXCEPTION = 3
   end
-  deprecate_module! :TMessageType => MessageTypes
 end
 
 Thrift.type_checking = false if Thrift.type_checking.nil?
diff --git a/lib/rb/spec/backwards_compatibility_spec.rb b/lib/rb/spec/backwards_compatibility_spec.rb
deleted file mode 100644
index 2ac3489..0000000
--- a/lib/rb/spec/backwards_compatibility_spec.rb
+++ /dev/null
@@ -1,136 +0,0 @@
-require File.dirname(__FILE__) + '/spec_helper'
-require 'thrift/protocol/binaryprotocol'
-require 'thrift/server/httpserver'
-require 'thrift/transport/httpclient'
-
-context "Backwards compatibility" do
-  specify "old class names should map to new classes" do
-    Thrift::DeprecationProxy.reset_deprecation_warnings
-    # use an Array because a Hash will call #hash and trigger deprecation warnings
-    klasses = [
-      [:module, :ThriftClient,               Thrift::Client],
-      [:class,  :TException,                 Thrift::Exception],
-      [:class,  :TApplicationException,      Thrift::ApplicationException],
-      [:module, :TProcessor,                 Thrift::Processor],
-      [:class,  :TProtocolException,         Thrift::ProtocolException],
-      [:class,  :TProtocol,                  Thrift::Protocol],
-      [:class,  :TProtocolFactory,           Thrift::ProtocolFactory],
-      [:class,  :TBinaryProtocol,            Thrift::BinaryProtocol],
-      [:class,  :TBinaryProtocolFactory,     Thrift::BinaryProtocolFactory],
-      [:class,  :TSimpleMongrelHTTPServer,   Thrift::SimpleMongrelHTTPServer],
-      [:class,  :TServer,                    Thrift::Server],
-      [:class,  :TSimpleServer,              Thrift::SimpleServer],
-      [:class,  :TThreadedServer,            Thrift::ThreadedServer],
-      [:class,  :TThreadPoolServer,          Thrift::ThreadPoolServer],
-      [:module, :ThriftStruct,               Thrift::Struct],
-      [:class,  :THttpClient,                Thrift::HTTPClient],
-      [:class,  :TSocket,                    Thrift::Socket],
-      [:class,  :TServerSocket,              Thrift::ServerSocket],
-      [:class,  :TTransportException,        Thrift::TransportException],
-      [:class,  :TTransport,                 Thrift::Transport],
-      [:class,  :TServerTransport,           Thrift::ServerTransport],
-      [:class,  :TTransportFactory,          Thrift::TransportFactory],
-      [:class,  :TBufferedTransport,         Thrift::BufferedTransport],
-      [:class,  :TBufferedTransportFactory,  Thrift::BufferedTransportFactory],
-      [:class,  :TFramedTransport,           Thrift::FramedTransport],
-      [:class,  :TFramedTransportFactory,    Thrift::FramedTransportFactory],
-      [:class,  :TMemoryBuffer,              Thrift::MemoryBuffer],
-      [:class,  :TIOStreamTransport,         Thrift::IOStreamTransport],
-      [:module, :TType,                      Thrift::Types],
-      [:module, :TMessageType,               Thrift::MessageTypes]
-    ]
-    klasses.each do |(type, oldname, newklass)|
-      oldklass = Object.const_get(oldname)
-      STDERR.should_receive(:puts).with("Warning: #{type} #{oldname} is deprecated").ordered
-      STDERR.should_receive(:puts).with("  from #{__FILE__}:#{__LINE__+1}").ordered
-      oldklass.should eql(newklass)
-      STDERR.rspec_verify
-      STDERR.rspec_reset
-    end
-  end
-
-  specify "old method names should map to new method names" do
-    mapping = {
-      Thrift::Protocol => {
-        :writeMessageBegin => :write_message_begin,
-        :writeMessageEnd => :write_message_end,
-        :writeStructBegin => :write_struct_begin,
-        :writeStructEnd => :write_struct_end,
-        :writeFieldBegin => :write_field_begin,
-        :writeFieldEnd => :write_field_end,
-        :writeFieldStop => :write_field_stop,
-        :writeMapBegin => :write_map_begin,
-        :writeMapEnd => :write_map_end,
-        :writeListBegin => :write_list_begin,
-        :writeListEnd => :write_list_end,
-        :writeSetBegin => :write_set_begin,
-        :writeSetEnd => :write_set_end,
-        :writeBool => :write_bool,
-        :writeByte => :write_byte,
-        :writeI16 => :write_i16,
-        :writeI32 => :write_i32,
-        :writeI64 => :write_i64,
-        :writeDouble => :write_double,
-        :writeString => :write_string,
-        :readMessageBegin => :read_message_begin,
-        :readMessageEnd => :read_message_end,
-        :readStructBegin => :read_struct_begin,
-        :readStructEnd => :read_struct_end,
-        :readFieldBegin => :read_field_begin,
-        :readFieldEnd => :read_field_end,
-        :readMapBegin => :read_map_begin,
-        :readMapEnd => :read_map_end,
-        :readListBegin => :read_list_begin,
-        :readListEnd => :read_list_end,
-        :readSetBegin => :read_set_begin,
-        :readSetEnd => :read_set_end,
-        :readBool => :read_bool,
-        :readByte => :read_byte,
-        :readI16 => :read_i16,
-        :readI32 => :read_i32,
-        :readI64 => :read_i64,
-        :readDouble => :read_double,
-        :readString => :read_string
-      },
-      Thrift::ProtocolFactory => {
-        :getProtocol => :get_protocol
-      },
-      Thrift::Transport => {
-        :isOpen => :open?,
-        :is_open? => :open?,
-        :readAll => :read_all
-      },
-      Thrift::TransportFactory => {
-        :getTransport => :get_transport
-      }
-    }
-    STDERR.stub!(:puts) # stub the deprecation warnings
-    mapping.each_pair do |klass, methods|
-      # save these so they can be used after being mocked up
-      defn_method = klass.method(:define_method)
-      inst_method = klass.method(:instance_method)
-      methods.each_pair do |oldmeth, newmeth|
-        # ensure that calling the old method will call the new method
-        # and then redefine the old method to be the new one
-        klass.should be_method_defined(oldmeth)
-        klass.should be_method_defined(newmeth)
-        orig_method = inst_method.call(:initialize)
-        defn_method.call(:initialize, proc {} ) # stub out initialize
-        begin
-          mockmeth = mock("UnboundMethod: #{newmeth}")
-          mockmeth.should_receive(:bind).and_return do
-            mock("Method: #{newmeth}").tee do |meth|
-              meth.should_receive(:call)
-            end
-          end
-          klass.should_receive(:instance_method).with(newmeth).twice.and_return(mockmeth)
-          klass.should_receive(:define_method).with(oldmeth, mockmeth)
-          klass.new.send oldmeth
-          klass.rspec_verify
-        ensure
-          defn_method.call(:initialize, orig_method)
-        end
-      end
-    end
-  end
-end
diff --git a/lib/rb/spec/deprecation_spec.rb b/lib/rb/spec/deprecation_spec.rb
deleted file mode 100644
index 0074528..0000000
--- a/lib/rb/spec/deprecation_spec.rb
+++ /dev/null
@@ -1,446 +0,0 @@
-require File.dirname(__FILE__) + '/spec_helper'
-
-shared_examples_for "deprecation" do
-  before(:all) do
-    # ensure deprecation is turned on
-    Thrift.send :remove_const, :DEPRECATION
-    Thrift.const_set :DEPRECATION, true
-  end
-
-  after(:all) do
-    # now turn it off again
-    # no other specs should want it
-    Thrift.send :remove_const, :DEPRECATION
-    Thrift.const_set :DEPRECATION, false
-  end
-
-  before(:each) do
-    Thrift::DeprecationProxy.reset_deprecation_warnings
-  end
-
-  def ensure_const_removed(name, &block)
-    begin
-      block.call
-    ensure
-      Object.send :remove_const, name if Object.const_defined? name
-    end
-  end
-end
-
-describe 'deprecate!' do
-  it_should_behave_like "deprecation"
-
-  def stub_stderr(callstr, offset=1)
-    STDERR.should_receive(:puts).with("Warning: calling deprecated method #{callstr}")
-    line = caller.first[/\d+$/].to_i + offset
-    STDERR.should_receive(:puts).with("  from #{__FILE__}:#{line}")
-  end
-
-  it "should work for Module methods" do
-    mod = Module.new do
-      class << self
-        def new
-          "new"
-        end
-        deprecate! :old => :new
-      end
-    end
-    stub_stderr "#{mod.inspect}.old"
-    mod.old.should == "new"
-  end
-
-  it "should work with Modules that extend themselves" do
-    mod = Module.new do
-      extend self
-      def new
-        "new"
-      end
-      deprecate! :old => :new
-    end
-    stub_stderr "#{mod.inspect}.old"
-    mod.old.should == "new"
-  end
-
-  it "should work wtih Class methods" do
-    klass = Class.new do
-      class << self
-        def new
-          "new"
-        end
-        deprecate! :old => :new
-      end
-    end
-    stub_stderr "#{klass.inspect}.old"
-    klass.old.should == "new"
-  end
-
-  it "should work with Classes that include Modules" do
-    mod = Module.new do
-      def new
-        "new"
-      end
-      deprecate! :old => :new
-    end
-    klass = Class.new do
-      include mod
-    end
-    stub_stderr "#{klass.inspect}#old"
-    klass.new.old.should == "new"
-  end
-
-  it "should work with instance methods" do
-    klass = Class.new do
-      def new
-        "new"
-      end
-      deprecate! :old => :new
-    end
-    stub_stderr "#{klass.inspect}#old"
-    klass.new.old.should == "new"
-  end
-
-  it "should work with multiple method names" do
-    klass = Class.new do
-      def new1
-        "new 1"
-      end
-      def new2
-        "new 2"
-      end
-      deprecate! :old1 => :new1, :old2 => :new2
-    end
-    stub_stderr("#{klass.inspect}#old1", 3).ordered
-    stub_stderr("#{klass.inspect}#old2", 3).ordered
-    inst = klass.new
-    inst.old1.should == "new 1"
-    inst.old2.should == "new 2"
-  end
-
-  it "should only log a message once, even across multiple instances" do
-    klass = Class.new do
-      def new
-        "new"
-      end
-      deprecate! :old => :new
-    end
-    stub_stderr("#{klass.inspect}#old").once
-    klass.new.old.should == "new"
-    klass.new.old.should == "new"
-  end
-
-  it "should pass arguments" do
-    klass = Class.new do
-      def new(a, b)
-        "new: #{a + b}"
-      end
-      deprecate! :old => :new
-    end
-    stub_stderr("#{klass.inspect}#old")
-    klass.new.old(3, 5).should == "new: 8"
-  end
-
-  it "should pass blocks" do
-    klass = Class.new do
-      def new
-        "new #{yield}"
-      end
-      deprecate! :old => :new
-    end
-    stub_stderr("#{klass.inspect}#old")
-    klass.new.old { "block" }.should == "new block"
-  end
-
-  it "should not freeze the definition of the new method" do
-    klass = Class.new do
-      def new
-        "new"
-      end
-      deprecate! :old => :new
-    end
-    klass.send :define_method, :new do
-      "new 2"
-    end
-    stub_stderr("#{klass.inspect}#old")
-    klass.new.old.should == "new 2"
-  end
-
-  it "should call the forwarded method in the same context as the original" do
-    klass = Class.new do
-      def myself
-        self
-      end
-      deprecate! :me => :myself
-    end
-    inst = klass.new
-    stub_stderr("#{klass.inspect}#me")
-    inst.me.should eql(inst.myself)
-  end
-end
-
-describe "deprecate_class!" do
-  it_should_behave_like "deprecation"
-
-  def stub_stderr_jruby(klass)
-    return unless defined? JRUBY_VERSION
-    stub_stderr(klass, nil, caller.first)
-  end
-
-  def stub_stderr_mri(klass, offset=1)
-    return if defined? JRUBY_VERSION
-    stub_stderr(klass, offset, caller.first)
-  end
-
-  def stub_stderr(klass, offset=1, called=nil)
-    STDERR.should_receive(:puts).with("Warning: class #{klass} is deprecated")
-    if offset
-      line = (called || caller.first)[/\d+$/].to_i + offset
-      STDERR.should_receive(:puts).with("  from #{__FILE__}:#{line}")
-    else
-      STDERR.should_receive(:puts).with(/^  from #{Regexp.escape(__FILE__)}:/)
-    end
-  end
-
-  it "should create a new global constant that points to the old one" do
-    ensure_const_removed :DeprecationSpecOldClass do
-      klass = Class.new do
-        def foo
-          "foo"
-        end
-      end
-      deprecate_class! :DeprecationSpecOldClass => klass
-      stub_stderr(:DeprecationSpecOldClass)
-      ::DeprecationSpecOldClass.should eql(klass)
-      ::DeprecationSpecOldClass.new.foo.should == "foo"
-    end
-  end
-
-  it "should create a global constant even from inside a module" do
-    ensure_const_removed :DeprecationSpecOldClass do
-      klass = nil #define scoping
-      Module.new do
-        klass = Class.new do
-          def foo
-            "foo"
-          end
-        end
-        deprecate_class! :DeprecationSpecOldClass => klass
-      end
-      stub_stderr(:DeprecationSpecOldClass)
-      ::DeprecationSpecOldClass.should eql(klass)
-      ::DeprecationSpecOldClass.new.foo.should == "foo"
-    end
-  end
-
-  it "should not prevent the deprecated class from being a superclass" do
-    ensure_const_removed :DeprecationSpecOldClass do
-      klass = Class.new do
-        def foo
-          "foo"
-        end
-      end
-      deprecate_class! :DeprecationSpecOldClass => klass
-      stub_stderr_jruby(:DeprecationSpecOldClass)
-      subklass = Class.new(::DeprecationSpecOldClass) do
-        def foo
-          "subclass #{super}"
-        end
-      end
-      stub_stderr_mri(:DeprecationSpecOldClass)
-      subklass.superclass.should eql(klass)
-      subklass.new.foo.should == "subclass foo"
-    end
-  end
-
-  it "should not bleed info between deprecations" do
-    ensure_const_removed :DeprecationSpecOldClass do
-      ensure_const_removed :DeprecationSpecOldClass2 do
-        klass = Class.new do
-          def foo
-            "foo"
-          end
-        end
-        deprecate_class! :DeprecationSpecOldClass => klass
-        klass2 = Class.new do
-          def bar
-            "bar"
-          end
-        end
-        deprecate_class! :DeprecationSpecOldClass2 => klass2
-        stub_stderr(:DeprecationSpecOldClass)
-        ::DeprecationSpecOldClass.new.foo.should == "foo"
-        stub_stderr(:DeprecationSpecOldClass2)
-        ::DeprecationSpecOldClass2.new.bar.should == "bar"
-      end
-    end
-  end
-
-  it "should work when Object.inherited calls a method on self" do
-    ensure_const_removed :DeprecationSpecOldClass do
-      old_inherited = Object.method(:inherited)
-      begin
-        (class << Object;self;end).class_eval do
-          define_method :inherited do |cls|
-            cls.inspect
-            old_inherited.call(cls)
-          end
-        end
-        klass = Class.new do
-          def foo
-            "foo"
-          end
-        end
-        STDERR.should_receive(:puts).exactly(0).times
-        lambda { deprecate_class! :DeprecationSpecOldClass => klass }.should_not raise_error
-      ensure
-        (class << Object;self;end).class_eval do
-          define_method :inherited, old_inherited
-        end
-      end
-    end
-  end
-end
-
-describe "deprecate_module!" do
-  it_should_behave_like "deprecation"
-
-  def stub_stderr_jruby(mod)
-    return unless defined? JRUBY_VERSION
-    stub_stderr(mod, nil, caller.first)
-  end
-
-  def stub_stderr_mri(mod, offset=1)
-    return if defined? JRUBY_VERSION
-    stub_stderr(mod, offset, caller.first)
-  end
-
-  def stub_stderr(mod, offset=1, called=nil)
-    STDERR.should_receive(:puts).with("Warning: module #{mod} is deprecated")
-    source = Regexp.escape(__FILE__) + ":"
-    if offset
-      line = (called || caller.first)[/\d+$/].to_i + offset
-      source += Regexp.escape(line.to_s)
-    else
-      source += "\d+"
-    end
-    STDERR.should_receive(:puts).with(/^  from #{source}(?::in `[^']+')?$/)
-  end
-
-  it "should create a new global constant that points to the old one" do
-    ensure_const_removed :DeprecationSpecOldModule do
-      mod = Module.new do
-        def self.foo
-          "foo"
-        end
-      end
-      deprecate_module! :DeprecationSpecOldModule => mod
-      stub_stderr(:DeprecationSpecOldModule)
-      ::DeprecationSpecOldModule.should eql(mod)
-      ::DeprecationSpecOldModule.foo.should == "foo"
-    end
-  end
-
-  it "should create a global constant even from inside a module" do
-    ensure_const_removed :DeprecationSpecOldModule do
-      mod = nil # scoping
-      Module.new do
-        mod = Module.new do
-          def self.foo
-            "foo"
-          end
-        end
-        deprecate_module! :DeprecationSpecOldModule => mod
-      end
-      stub_stderr(:DeprecationSpecOldModule)
-      ::DeprecationSpecOldModule.should eql(mod)
-      ::DeprecationSpecOldModule.foo.should == "foo"
-    end
-  end
-
-  it "should work for modules that extend themselves" do
-    ensure_const_removed :DeprecationSpecOldModule do
-      mod = Module.new do
-        extend self
-        def foo
-          "foo"
-        end
-      end
-      deprecate_module! :DeprecationSpecOldModule => mod
-      stub_stderr(:DeprecationSpecOldModule)
-      ::DeprecationSpecOldModule.should eql(mod)
-      ::DeprecationSpecOldModule.foo.should == "foo"
-    end
-  end
-
-  it "should work for modules included in other modules" do
-    ensure_const_removed :DeprecationSpecOldModule do
-      mod = Module.new do
-        def foo
-          "foo"
-        end
-      end
-      deprecate_module! :DeprecationSpecOldModule => mod
-      stub_stderr_jruby(:DeprecationSpecOldModule)
-      mod2 = Module.new do
-        class << self
-          include ::DeprecationSpecOldModule
-        end
-      end
-      stub_stderr_mri(:DeprecationSpecOldModule)
-      mod2.foo.should == "foo"
-    end
-  end
-
-  it "should work for modules included in classes" do
-    ensure_const_removed :DeprecationSpecOldModule do
-      mod = Module.new do
-        def foo
-          "foo"
-        end
-      end
-      deprecate_module! :DeprecationSpecOldModule => mod
-      stub_stderr_jruby(:DeprecationSpecOldModule)
-      klass = Class.new do
-        include ::DeprecationSpecOldModule
-      end
-      stub_stderr_mri(:DeprecationSpecOldModule)
-      klass.new.foo.should == "foo"
-    end
-  end
-
-  it "should not bleed info between deprecations" do
-    ensure_const_removed :DeprecationSpecOldModule do
-      ensure_const_removed :DeprecationSpecOldModule2 do
-        mod = Module.new do
-          def self.foo
-            "foo"
-          end
-        end
-        deprecate_module! :DeprecationSpecOldModule => mod
-        mod2 = Module.new do
-          def self.bar
-            "bar"
-          end
-        end
-        deprecate_module! :DeprecationSpecOldModule2 => mod2
-        stub_stderr(:DeprecationSpecOldModule)
-        ::DeprecationSpecOldModule.foo.should == "foo"
-        stub_stderr(:DeprecationSpecOldModule2)
-        ::DeprecationSpecOldModule2.bar.should == "bar"
-      end
-    end
-  end
-
-  it "should skip thrift library code when printing caller" do
-    klass = Class.new do
-      include ThriftStruct
-      FIELDS = {
-        1 => {:name => "foo", :type => Thrift::Types::STRING}
-      }
-      def struct_fields
-        FIELDS
-      end
-    end
-    stub_stderr('ThriftStruct')
-    klass.new(:foo => "foo")
-  end
-end
diff --git a/lib/rb/spec/protocol_spec.rb b/lib/rb/spec/protocol_spec.rb
index a681cd8..1db4e19 100644
--- a/lib/rb/spec/protocol_spec.rb
+++ b/lib/rb/spec/protocol_spec.rb
@@ -134,9 +134,9 @@
   end
 
   describe ProtocolFactory do
-    it "should return nil" do
+    it "should raise NotImplementedError" do
       # returning nil since Protocol is just an abstract class
-      ProtocolFactory.new.get_protocol(mock("MockTransport")).should be_nil
+      lambda {ProtocolFactory.new.get_protocol(mock("MockTransport"))}.should raise_error(NotImplementedError)
     end
   end
 end
diff --git a/lib/rb/spec/transport_spec.rb b/lib/rb/spec/transport_spec.rb
index ef1918f..98408ab 100644
--- a/lib/rb/spec/transport_spec.rb
+++ b/lib/rb/spec/transport_spec.rb
@@ -221,40 +221,6 @@
       @trans.should_receive(:write).with("\000\000\000\000")
       ftrans.flush
     end
-    
-    it "should refill its buffer when borrow is called and it is empty" do
-      ftrans = FramedTransport.new(@trans)
-      @trans.should_receive(:read_all).with(4).and_return([10].pack("N"))
-      @trans.should_receive(:read_all).with(10).and_return("1234567890")
-      ftrans.borrow(10).should == "1234567890"
-    end
-    
-    it "should not consume any data when borrow is called" do
-      ftrans = FramedTransport.new(@trans)
-      @trans.should_receive(:read_all).with(4).and_return([10].pack("N"))
-      @trans.should_receive(:read_all).with(10).and_return("1234567890")
-      ftrans.borrow(10).should == "1234567890"
-      ftrans.borrow(10).should == "1234567890"
-    end
-    
-    it "should remove data from the buffer when consume! is called" do
-      ftrans = FramedTransport.new(@trans)
-      @trans.should_receive(:read_all).with(4).ordered.and_return([10].pack("N"))
-      @trans.should_receive(:read_all).with(10).ordered.and_return("1234567890")
-      ftrans.borrow(5).should == "1234567890"
-      ftrans.consume!(5).should == "12345"
-      ftrans.borrow(5).should == "67890"
-    end
-    
-    it "should raise an EOFError when it is out of data and borrow is called" do
-      ftrans = FramedTransport.new(@trans)
-      @trans.should_receive(:read_all).with(4).ordered.and_return([10].pack("N"), [0].pack("N"))
-      @trans.should_receive(:read_all).with(10).ordered.and_return("1234567890")
-      @trans.should_receive(:read_all).with(0).ordered.and_return("")
-      ftrans.borrow(10).should == "1234567890"
-      ftrans.consume!(10).should == "1234567890"
-      lambda {ftrans.borrow(10)}.should raise_error(EOFError)
-    end
   end
 
   describe FramedTransportFactory do