t2-server 0.6.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. data/.rvmrc +1 -0
  2. data/CHANGES.rdoc +48 -0
  3. data/LICENCE.rdoc +2 -2
  4. data/README.rdoc +245 -10
  5. data/Rakefile +108 -0
  6. data/bin/t2-delete-runs +21 -34
  7. data/bin/t2-get-output +134 -0
  8. data/bin/t2-run-workflow +121 -109
  9. data/bin/t2-server-admin +128 -0
  10. data/bin/t2-server-info +25 -38
  11. data/lib/t2-server-cli.rb +116 -0
  12. data/lib/t2-server.rb +16 -27
  13. data/lib/t2-server/admin.rb +147 -0
  14. data/lib/t2-server/connection-parameters.rb +144 -0
  15. data/lib/t2-server/connection.rb +352 -0
  16. data/lib/t2-server/credentials.rb +84 -0
  17. data/lib/t2-server/exceptions.rb +42 -21
  18. data/lib/t2-server/port.rb +472 -0
  19. data/lib/t2-server/run.rb +822 -227
  20. data/lib/t2-server/server.rb +313 -317
  21. data/lib/t2-server/util.rb +71 -0
  22. data/lib/t2-server/xml/libxml.rb +87 -0
  23. data/lib/t2-server/xml/nokogiri.rb +85 -0
  24. data/lib/t2-server/xml/rexml.rb +85 -0
  25. data/lib/t2-server/xml/xml.rb +111 -0
  26. data/lib/t2server.rb +4 -1
  27. data/t2-server.gemspec +112 -0
  28. data/test/tc_admin.rb +63 -0
  29. data/test/{tc_paths.rb → tc_params.rb} +11 -25
  30. data/test/tc_perms.rb +132 -0
  31. data/test/tc_run.rb +200 -67
  32. data/test/tc_secure.rb +191 -0
  33. data/test/tc_server.rb +25 -23
  34. data/test/tc_util.rb +74 -0
  35. data/test/ts_t2server.rb +57 -12
  36. data/test/workflows/always_fail.t2flow +69 -0
  37. data/test/workflows/list_and_value.t2flow +12 -0
  38. data/test/workflows/list_with_errors.t2flow +107 -0
  39. data/test/workflows/secure/basic-http.t2flow +74 -0
  40. data/test/workflows/secure/basic-https.t2flow +74 -0
  41. data/test/workflows/secure/client-https.t2flow +162 -0
  42. data/test/workflows/secure/digest-http.t2flow +129 -0
  43. data/test/workflows/secure/digest-https.t2flow +107 -0
  44. data/test/workflows/secure/heater-pk.pem +20 -0
  45. data/test/workflows/secure/user-cert.p12 +0 -0
  46. data/test/workflows/secure/ws-http.t2flow +180 -0
  47. data/test/workflows/secure/ws-https.t2flow +180 -0
  48. data/test/workflows/strings.txt +10 -0
  49. data/test/workflows/xml_xpath.t2flow +136 -136
  50. data/version.yml +4 -0
  51. metadata +132 -34
  52. data/lib/t2-server/xml.rb +0 -86
@@ -0,0 +1,71 @@
1
+ # Copyright (c) 2010-2012 The University of Manchester, UK.
2
+ #
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # * Neither the names of The University of Manchester nor the names of its
16
+ # contributors may be used to endorse or promote products derived from this
17
+ # software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ # POSSIBILITY OF SUCH DAMAGE.
30
+ #
31
+ # Author: Robert Haines
32
+
33
+ module T2Server
34
+ module Util
35
+
36
+ # :call-seq:
37
+ # Util.strip_uri_credentials(uri) -> URI, Credentials
38
+ #
39
+ # Strip user credentials from an address in URI or String format and return
40
+ # a tuple of the URI minus the credentials and a T2Server::Credentials
41
+ # object.
42
+ def self.strip_uri_credentials(uri)
43
+ # we want to use URIs here but strings can be passed in
44
+ unless uri.is_a? URI
45
+ uri = URI.parse(Util.strip_path_slashes(uri))
46
+ end
47
+
48
+ creds = nil
49
+
50
+ # strip username and password from the URI if present
51
+ if uri.user != nil
52
+ creds = T2Server::HttpBasic.new(uri.user, uri.password)
53
+
54
+ uri = URI::HTTP.new(uri.scheme, nil, uri.host, uri.port, nil,
55
+ uri.path, nil, nil, nil);
56
+ end
57
+
58
+ [uri, creds]
59
+ end
60
+
61
+ # :call-seq:
62
+ # Util.strip_path_slashes(path) -> String
63
+ #
64
+ # Returns a new String with one leading and one trailing slash
65
+ # removed from the ends of _path_ (if present).
66
+ def self.strip_path_slashes(path)
67
+ path.gsub(/^\//, "").chomp("/")
68
+ end
69
+
70
+ end
71
+ end
@@ -0,0 +1,87 @@
1
+ # Copyright (c) 2010-2012 The University of Manchester, UK.
2
+ #
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # * Neither the names of The University of Manchester nor the names of its
16
+ # contributors may be used to endorse or promote products derived from this
17
+ # software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ # POSSIBILITY OF SUCH DAMAGE.
30
+ #
31
+ # Author: Robert Haines
32
+
33
+ require 'rubygems'
34
+ require 'libxml'
35
+
36
+ module T2Server
37
+ module XML
38
+ # Shut the libxml error handler up
39
+ LibXML::XML::Error.set_handler(&LibXML::XML::Error::QUIET_HANDLER)
40
+
41
+ module Methods
42
+ def xml_document(string)
43
+ LibXML::XML::Document.string(string)
44
+ end
45
+
46
+ def xml_text_node(text)
47
+ LibXML::XML::Node.new_text(text)
48
+ end
49
+
50
+ def xml_first_child(node)
51
+ node.first
52
+ end
53
+
54
+ def xml_children(doc, &block)
55
+ doc.each { |node| yield node }
56
+ end
57
+
58
+ def xml_node_name(node)
59
+ node.name
60
+ end
61
+
62
+ def xml_node_content(node)
63
+ node.content
64
+ end
65
+
66
+ def xml_node_attribute(node, attribute)
67
+ node.attributes[attribute]
68
+ end
69
+
70
+ def xpath_compile(xpath)
71
+ LibXML::XML::XPath::Expression.new(xpath)
72
+ end
73
+
74
+ def xpath_find(doc, expr)
75
+ doc.find(expr, Namespaces::MAP)
76
+ end
77
+
78
+ def xpath_first(doc, expr)
79
+ doc.find_first(expr, Namespaces::MAP)
80
+ end
81
+
82
+ def xpath_attr(doc, expr, attribute)
83
+ doc.find_first(expr, Namespaces::MAP).attributes[attribute]
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,85 @@
1
+ # Copyright (c) 2010-2012 The University of Manchester, UK.
2
+ #
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # * Neither the names of The University of Manchester nor the names of its
16
+ # contributors may be used to endorse or promote products derived from this
17
+ # software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ # POSSIBILITY OF SUCH DAMAGE.
30
+ #
31
+ # Author: Robert Haines
32
+
33
+ require 'rubygems'
34
+ require 'nokogiri'
35
+
36
+ module T2Server
37
+ module XML
38
+
39
+ module Methods
40
+ def xml_document(string)
41
+ Nokogiri::XML(string)
42
+ end
43
+
44
+ def xml_text_node(text)
45
+ Nokogiri::XML::Text.new(text, Nokogiri::XML::Document.new).to_s
46
+ end
47
+
48
+ def xml_first_child(node)
49
+ node.first_element_child
50
+ end
51
+
52
+ def xml_children(doc, &block)
53
+ doc.children.each &block
54
+ end
55
+
56
+ def xml_node_name(node)
57
+ node.node_name
58
+ end
59
+
60
+ def xml_node_content(node)
61
+ node.content
62
+ end
63
+
64
+ def xml_node_attribute(node, attribute)
65
+ node[attribute]
66
+ end
67
+
68
+ def xpath_compile(xpath)
69
+ xpath
70
+ end
71
+
72
+ def xpath_find(doc, expr)
73
+ doc.xpath(expr, Namespaces::MAP)
74
+ end
75
+
76
+ def xpath_first(doc, expr)
77
+ doc.at_xpath(expr, Namespaces::MAP)
78
+ end
79
+
80
+ def xpath_attr(doc, expr, attribute)
81
+ doc.at_xpath(expr, Namespaces::MAP)[attribute]
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,85 @@
1
+ # Copyright (c) 2010-2012 The University of Manchester, UK.
2
+ #
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # * Neither the names of The University of Manchester nor the names of its
16
+ # contributors may be used to endorse or promote products derived from this
17
+ # software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ # POSSIBILITY OF SUCH DAMAGE.
30
+ #
31
+ # Author: Robert Haines
32
+
33
+ require 'rexml/document'
34
+ require 'rexml/text'
35
+
36
+ module T2Server
37
+ module XML
38
+
39
+ module Methods
40
+ def xml_document(string)
41
+ REXML::Document.new(string)
42
+ end
43
+
44
+ def xml_text_node(text)
45
+ REXML::Text.new(text).to_s
46
+ end
47
+
48
+ def xml_first_child(node)
49
+ node.first
50
+ end
51
+
52
+ def xml_children(doc, &block)
53
+ doc.each { |node| yield node }
54
+ end
55
+
56
+ def xml_node_name(node)
57
+ node.name
58
+ end
59
+
60
+ def xml_node_content(node)
61
+ node.text
62
+ end
63
+
64
+ def xml_node_attribute(node, attribute)
65
+ node.attributes[attribute]
66
+ end
67
+
68
+ def xpath_compile(xpath)
69
+ xpath
70
+ end
71
+
72
+ def xpath_find(doc, expr)
73
+ REXML::XPath.each(doc, expr, Namespaces::MAP)
74
+ end
75
+
76
+ def xpath_first(doc, expr)
77
+ REXML::XPath.first(doc, expr, Namespaces::MAP)
78
+ end
79
+
80
+ def xpath_attr(doc, expr, attribute)
81
+ REXML::XPath.first(doc, expr, Namespaces::MAP).attributes[attribute]
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,111 @@
1
+ # Copyright (c) 2010-2012 The University of Manchester, UK.
2
+ #
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # * Neither the names of The University of Manchester nor the names of its
16
+ # contributors may be used to endorse or promote products derived from this
17
+ # software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ # POSSIBILITY OF SUCH DAMAGE.
30
+ #
31
+ # Author: Robert Haines
32
+
33
+ begin
34
+ require 't2-server/xml/libxml'
35
+ rescue LoadError
36
+ begin
37
+ require 't2-server/xml/nokogiri'
38
+ rescue LoadError
39
+ require 't2-server/xml/rexml'
40
+ end
41
+ end
42
+
43
+ module T2Server
44
+ module XML
45
+
46
+ module Namespaces
47
+ SERVER = "http://ns.taverna.org.uk/2010/xml/server/"
48
+ REST = SERVER + "rest/"
49
+ ADMIN = SERVER + "admin/"
50
+ PORT = "http://ns.taverna.org.uk/2010/port/"
51
+
52
+ MAP = {
53
+ "nss" => Namespaces::SERVER,
54
+ "nsr" => Namespaces::REST,
55
+ "nsa" => Namespaces::ADMIN,
56
+ "port" => Namespaces::PORT
57
+ }
58
+ end
59
+
60
+ module Fragments
61
+ WORKFLOW = "<t2s:workflow xmlns:t2s=\"#{Namespaces::SERVER}\">\n" +
62
+ " %s\n</t2s:workflow>"
63
+ RUNINPUT = "<t2sr:runInput xmlns:t2sr=\"#{Namespaces::REST}\">\n" +
64
+ " %s\n</t2sr:runInput>"
65
+ RUNINPUTVALUE = RUNINPUT % "<t2sr:value>%s</t2sr:value>"
66
+ RUNINPUTFILE = RUNINPUT % "<t2sr:file>%s</t2sr:file>"
67
+ UPLOAD = "<t2sr:upload xmlns:t2sr=\"#{Namespaces::REST}\" " +
68
+ "t2sr:name=\"%s\">\n %s\n</t2sr:upload>"
69
+ MKDIR = "<t2sr:mkdir xmlns:t2sr=\"#{Namespaces::REST}\" " +
70
+ "t2sr:name=\"%s\" />"
71
+
72
+ PERMISSION = "<t2sr:userName>%s</t2sr:userName>" +
73
+ "<t2sr:permission>%s</t2sr:permission>"
74
+ PERM_UPDATE = "<t2sr:permissionUpdate " +
75
+ "xmlns:t2sr=\"#{Namespaces::REST}\">" +
76
+ "#{PERMISSION}</t2sr:permissionUpdate>"
77
+
78
+ SERVICE_URI = "<t2s:serviceURI>%s</t2s:serviceURI>"
79
+ CREDENTIAL = "<t2sr:credential xmlns:t2sr=\"#{Namespaces::REST}\"" +
80
+ " xmlns:t2s=\"#{Namespaces::SERVER}\">\n" +
81
+ "%s\n</t2sr:credential>"
82
+ USERPASS_CRED = "<t2s:userpass>\n" +
83
+ " #{SERVICE_URI}\n" +
84
+ " <t2s:username>%s</t2s:username>\n" +
85
+ " <t2s:password>%s</t2s:password>\n" +
86
+ "</t2s:userpass>"
87
+
88
+ KEYPAIR_CRED = "<t2s:keypair>\n" +
89
+ " #{SERVICE_URI}\n" +
90
+ " <t2s:credentialName>%s</t2s:credentialName>\n" +
91
+ " <t2s:credentialBytes>%s</t2s:credentialBytes>\n" +
92
+ " <t2s:fileType>%s</t2s:fileType>\n" +
93
+ " <t2s:unlockPassword>%s</t2s:unlockPassword>\n" +
94
+ "</t2s:keypair>"
95
+
96
+ TRUST = "<t2s:trustedIdentity " +
97
+ "xmlns:t2s=\"#{Namespaces::SERVER}\">\n" +
98
+ " <t2s:certificateBytes>%s</t2s:certificateBytes>\n" +
99
+ " <t2s:fileType>%s</t2s:fileType>\n" +
100
+ "</t2s:trustedIdentity>"
101
+ end
102
+
103
+ module Methods
104
+ # The methods in this namespace are provided by the particular XML
105
+ # library selected above. The xpath_compile method needs to be declared
106
+ # as a module method so it can be used as a class method when it is
107
+ # mixed in.
108
+ module_function :xpath_compile
109
+ end
110
+ end
111
+ end
data/lib/t2server.rb CHANGED
@@ -14,7 +14,7 @@
14
14
  #
15
15
  # * Neither the names of The University of Manchester nor the names of its
16
16
  # contributors may be used to endorse or promote products derived from this
17
- # software without specific prior written permission.
17
+ # software without specific prior written permission.
18
18
  #
19
19
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
20
  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -32,4 +32,7 @@
32
32
 
33
33
  # This is simply here to provide backwards compatibility. Old versions had an
34
34
  # inconsistancy between the gem name and the file to require to use it.
35
+ warn "[DEPRECATION] Code should no longer require 't2server'. Please use " +
36
+ "require 't2-server' as this is consistent with the gem name. In version " +
37
+ "1.0 require 't2server' will cease to work."
35
38
  require 't2-server'