riddl 0.99.105

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 (92) hide show
  1. data/AUTHORS +1 -0
  2. data/COPYING +165 -0
  3. data/INSTALL +24 -0
  4. data/README.rdoc +2 -0
  5. data/Rakefile +17 -0
  6. data/TODO +17 -0
  7. data/contrib/riddl.jpg +0 -0
  8. data/contrib/riddl.png +0 -0
  9. data/contrib/riddl.svg +138 -0
  10. data/lib/riddl/client.rb +423 -0
  11. data/lib/riddl/commonlogger.rb +16 -0
  12. data/lib/riddl/constants.rb +5 -0
  13. data/lib/riddl/error.rb +8 -0
  14. data/lib/riddl/handlers.rb +14 -0
  15. data/lib/riddl/handlers/oauth.rb +19 -0
  16. data/lib/riddl/handlers/plain-type.rb +21 -0
  17. data/lib/riddl/handlers/relaxng.rb +16 -0
  18. data/lib/riddl/handlers/xmlschema.rb +16 -0
  19. data/lib/riddl/header.rb +9 -0
  20. data/lib/riddl/implementation.rb +57 -0
  21. data/lib/riddl/ns/common-patterns/addon-security/request.xml +25 -0
  22. data/lib/riddl/ns/common-patterns/addon-security/response.xml +25 -0
  23. data/lib/riddl/ns/common-patterns/downloadify/1.0/downloadify.xml +18 -0
  24. data/lib/riddl/ns/common-patterns/notifications-consumer/1.0/consumer.xml +100 -0
  25. data/lib/riddl/ns/common-patterns/notifications-producer/1.0/producer.xml +204 -0
  26. data/lib/riddl/ns/common-patterns/properties/1.0/properties.schema.schema +140 -0
  27. data/lib/riddl/ns/common-patterns/properties/1.0/properties.schema.xsl +89 -0
  28. data/lib/riddl/ns/common-patterns/properties/1.0/properties.xml +150 -0
  29. data/lib/riddl/ns/common/datatypes-1_0.rng +79 -0
  30. data/lib/riddl/ns/common/relaxng-modular.rng +330 -0
  31. data/lib/riddl/ns/common/relaxng.rng +10 -0
  32. data/lib/riddl/ns/declaration/1.0/declaration.rng +114 -0
  33. data/lib/riddl/ns/description/1.0/description.rng +302 -0
  34. data/lib/riddl/option.rb +9 -0
  35. data/lib/riddl/parameter.rb +54 -0
  36. data/lib/riddl/protocols/http/generator.rb +121 -0
  37. data/lib/riddl/protocols/http/parser.rb +199 -0
  38. data/lib/riddl/protocols/websocket.rb +103 -0
  39. data/lib/riddl/protocols/xmpp/generator.rb +176 -0
  40. data/lib/riddl/protocols/xmpp/parser.rb +118 -0
  41. data/lib/riddl/roles.rb +15 -0
  42. data/lib/riddl/roles/http%3A%2F%2Foauth.net%2F1.0%2Faccess_token.rb +30 -0
  43. data/lib/riddl/roles/http%3A%2F%2Foauth.net%2F1.0%2Fon_behalf.rb +22 -0
  44. data/lib/riddl/roles/http%3A%2F%2Foauth.net%2F1.0%2Frequest_token.rb +30 -0
  45. data/lib/riddl/roles/http%3A%2F%2Foauth.net%2F1.0/base.rb +67 -0
  46. data/lib/riddl/server.rb +519 -0
  47. data/lib/riddl/utils/description.rb +29 -0
  48. data/lib/riddl/utils/downloadify.rb +14 -0
  49. data/lib/riddl/utils/erbserve.rb +23 -0
  50. data/lib/riddl/utils/fileserve.rb +31 -0
  51. data/lib/riddl/utils/notifications_producer.rb +310 -0
  52. data/lib/riddl/utils/properties.rb +474 -0
  53. data/lib/riddl/utils/xsloverlay.rb +21 -0
  54. data/lib/riddl/wrapper.rb +280 -0
  55. data/lib/riddl/wrapper/declaration.rb +103 -0
  56. data/lib/riddl/wrapper/declaration/facade.rb +94 -0
  57. data/lib/riddl/wrapper/declaration/interface.rb +34 -0
  58. data/lib/riddl/wrapper/declaration/tile.rb +107 -0
  59. data/lib/riddl/wrapper/description.rb +69 -0
  60. data/lib/riddl/wrapper/description/access.rb +108 -0
  61. data/lib/riddl/wrapper/description/message_and_transformation.rb +131 -0
  62. data/lib/riddl/wrapper/description/resource.rb +271 -0
  63. data/lib/riddl/wrapper/layerchecker.rb +33 -0
  64. data/lib/riddl/wrapper/messageparser.rb +221 -0
  65. data/lib/riddl/wrapper/resourcechecker.rb +98 -0
  66. data/ns/common-patterns/addon-security/request.xml +25 -0
  67. data/ns/common-patterns/addon-security/response.xml +25 -0
  68. data/ns/common-patterns/downloadify/1.0/downloadify.xml +18 -0
  69. data/ns/common-patterns/notifications-consumer/1.0/consumer.xml +100 -0
  70. data/ns/common-patterns/notifications-producer/1.0/producer.xml +204 -0
  71. data/ns/common-patterns/properties/1.0/properties.schema.schema +140 -0
  72. data/ns/common-patterns/properties/1.0/properties.schema.xsl +89 -0
  73. data/ns/common-patterns/properties/1.0/properties.xml +150 -0
  74. data/ns/common/datatypes-1_0.rng +79 -0
  75. data/ns/common/relaxng-modular.rng +330 -0
  76. data/ns/common/relaxng.rng +10 -0
  77. data/ns/declaration/1.0/declaration.rng +114 -0
  78. data/ns/description/1.0/description.rng +302 -0
  79. data/riddl.gemspec +33 -0
  80. data/test/smartrunner.rb +48 -0
  81. data/test/tc_declaration-distributed.rb +79 -0
  82. data/test/tc_declaration-hybrid.rb +71 -0
  83. data/test/tc_declaration-local.rb +47 -0
  84. data/test/tc_helloworld.rb +17 -0
  85. data/test/tc_producer.rb +54 -0
  86. data/test/tc_properties.rb +72 -0
  87. data/tools/flash-policy-server.rb +12 -0
  88. data/tools/riddlcheck +36 -0
  89. data/tools/riddlcheck-1_0 +36 -0
  90. data/tools/riddlprocess +51 -0
  91. data/tools/riddlprocess-1_0 +51 -0
  92. metadata +291 -0
@@ -0,0 +1,140 @@
1
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <include href="../../../common/relaxng-modular.rng"/>
3
+
4
+ <start>
5
+ <ref name="metastart"/>
6
+ </start>
7
+
8
+ <define name="metastart">
9
+ <element name="properties">
10
+ <oneOrMore>
11
+ <choice>
12
+ <ref name="element"/>
13
+ <ref name="optional"/>
14
+ </choice>
15
+ </oneOrMore>
16
+ </element>
17
+ </define>
18
+
19
+ <define name="element">
20
+ <choice>
21
+ <element>
22
+ <anyName/>
23
+ <ref name="modifiable"/>
24
+ <attribute name="type">
25
+ <choice>
26
+ <value>simple</value>
27
+ </choice>
28
+ </attribute>
29
+ <choice>
30
+ <element name="choice">
31
+ <ref name="common-atts"/>
32
+ <oneOrMore>
33
+ <element name="value">
34
+ <optional>
35
+ <attribute name="type">
36
+ <data type="NCName"/>
37
+ </attribute>
38
+ </optional>
39
+ <ref name="common-atts"/>
40
+ <text/>
41
+ </element>
42
+ </oneOrMore>
43
+ </element>
44
+ <element name="text"><empty/></element>
45
+ <element name="data">
46
+ <ref name="common-atts"/>
47
+ <ref name="data"/>
48
+ </element>
49
+ </choice>
50
+ </element>
51
+ <element>
52
+ <anyName/>
53
+ <ref name="modifiable"/>
54
+ <attribute name="type">
55
+ <choice>
56
+ <value>arbitrary</value>
57
+ </choice>
58
+ </attribute>
59
+ </element>
60
+ <element>
61
+ <anyName/>
62
+ <ref name="modifiable"/>
63
+ <attribute name="type">
64
+ <choice>
65
+ <value>complex</value>
66
+ </choice>
67
+ </attribute>
68
+ <ref name="same-inside"/>
69
+ </element>
70
+ <element>
71
+ <anyName/>
72
+ <ref name="modifiable"/>
73
+ <attribute name="type">
74
+ <choice>
75
+ <value>state</value>
76
+ </choice>
77
+ </attribute>
78
+ <oneOrMore>
79
+ <element>
80
+ <anyName/>
81
+ <zeroOrMore>
82
+ <element>
83
+ <anyName/>
84
+ <optional>
85
+ <attribute name="putable">
86
+ <data type="boolean"/>
87
+ </attribute>
88
+ </optional>
89
+ </element>
90
+ </zeroOrMore>
91
+ </element>
92
+ </oneOrMore>
93
+ </element>
94
+ </choice>
95
+ </define>
96
+
97
+ <define name="optional">
98
+ <element name="optional">
99
+ <ref name="element"/>
100
+ </element>
101
+ </define>
102
+
103
+ <define name="modifiable">
104
+ <choice>
105
+ <attribute name="modifiable">
106
+ <choice>
107
+ <value>true</value>
108
+ </choice>
109
+ </attribute>
110
+ <group>
111
+ <attribute name="modifiable">
112
+ <choice>
113
+ <value>false</value>
114
+ </choice>
115
+ </attribute>
116
+ <attribute name="mutable">
117
+ <data type="boolean"/>
118
+ </attribute>
119
+ </group>
120
+ </choice>
121
+ </define>
122
+
123
+ <define name="same-inside">
124
+ <zeroOrMore>
125
+ <element>
126
+ <anyName/>
127
+ <zeroOrMore>
128
+ <choice>
129
+ <attribute>
130
+ <anyName/>
131
+ </attribute>
132
+ <text/>
133
+ <ref name="any"/>
134
+ </choice>
135
+ </zeroOrMore>
136
+ </element>
137
+ </zeroOrMore>
138
+ </define>
139
+
140
+ </grammar>
@@ -0,0 +1,89 @@
1
+ <!DOCTYPE html>
2
+ <xsl:stylesheet version="1.0" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:p="http://riddl.org/ns/common-patterns/properties/1.0">
3
+ <xsl:output method="xml" indent="yes"/>
4
+
5
+ <xsl:template match="/p:properties">
6
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/properties/1.0">
7
+
8
+ <start>
9
+ <element name="properties">
10
+ <interleave>
11
+ <xsl:apply-templates select="./*[name()!='optional']"/>
12
+ <xsl:apply-templates select="p:optional"/>
13
+ </interleave>
14
+ </element>
15
+ </start>
16
+
17
+ <define name="arbitrary">
18
+ <zeroOrMore>
19
+ <choice>
20
+ <text/>
21
+ <ref name="any"/>
22
+ </choice>
23
+ </zeroOrMore>
24
+ </define>
25
+
26
+ <define name="any">
27
+ <element>
28
+ <anyName/>
29
+ <zeroOrMore>
30
+ <attribute>
31
+ <anyName/>
32
+ </attribute>
33
+ </zeroOrMore>
34
+ <zeroOrMore>
35
+ <choice>
36
+ <text/>
37
+ <ref name="any"/>
38
+ </choice>
39
+ </zeroOrMore>
40
+ </element>
41
+ </define>
42
+
43
+ </grammar>
44
+ </xsl:template>
45
+
46
+ <xsl:template match="p:optional">
47
+ <optional>
48
+ <xsl:apply-templates select="./*[name()!='optional']"/>
49
+ </optional>
50
+ </xsl:template>
51
+
52
+ <xsl:template match="*[name()!='optional']">
53
+ <element>
54
+
55
+ <xsl:attribute name="name">
56
+ <xsl:value-of select="name()"/>
57
+ </xsl:attribute>
58
+
59
+ <xsl:if test="@type='arbitrary'">
60
+ <ref name="arbitrary"/>
61
+ </xsl:if>
62
+
63
+ <xsl:if test="@type='complex'">
64
+ <xsl:apply-templates mode="copy-no-ns"/>
65
+ </xsl:if>
66
+
67
+ <xsl:if test="@type='state'">
68
+ <choice>
69
+ <xsl:for-each select='*'>
70
+ <value><xsl:value-of select='name()'/></value>
71
+ </xsl:for-each>
72
+ </choice>
73
+ </xsl:if>
74
+
75
+ <xsl:if test="@type='simple'">
76
+ <xsl:apply-templates mode="copy-no-ns"/>
77
+ </xsl:if>
78
+
79
+ </element>
80
+ </xsl:template>
81
+
82
+ <xsl:template mode="copy-no-ns" match="*">
83
+ <xsl:element name="{name(.)}">
84
+ <xsl:copy-of select="@*"/>
85
+ <xsl:apply-templates mode="copy-no-ns"/>
86
+ </xsl:element>
87
+ </xsl:template>
88
+
89
+ </xsl:stylesheet>
@@ -0,0 +1,150 @@
1
+ <description datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://riddl.org/ns/description/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
2
+
3
+ <message name="value">
4
+ <choice>
5
+ <parameter name="value" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
6
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/properties/1.0">
7
+ <start>
8
+ <choice>
9
+ <element name="value">
10
+ <ref name="value"/>
11
+ </element>
12
+ <element name="not-existing">
13
+ <empty/>
14
+ </element>
15
+ </choice>
16
+ </start>
17
+
18
+ <define name="value">
19
+ <zeroOrMore>
20
+ <choice>
21
+ <text/>
22
+ <ref name="any"/>
23
+ </choice>
24
+ </zeroOrMore>
25
+ </define>
26
+
27
+ <define name="any">
28
+ <element>
29
+ <anyName/>
30
+ <zeroOrMore>
31
+ <attribute>
32
+ <anyName/>
33
+ </attribute>
34
+ </zeroOrMore>
35
+ <ref name="value"/>
36
+ </element>
37
+ </define>
38
+
39
+ </grammar>
40
+ </parameter>
41
+ <parameter name="value" type="string"/>
42
+
43
+ <parameter name="content" mimetype="text/xml"/>
44
+ <parameter name="content" mimetype="text/plain"/>
45
+ </choice>
46
+ </message>
47
+
48
+ <message name="resource-document">
49
+ <parameter name="document" mimetype="text/xml"/>
50
+ </message>
51
+ <message name="resource-document-schema">
52
+ <parameter name="document-schema" mimetype="text/xml"/>
53
+ </message>
54
+
55
+ <message name="properties">
56
+ <oneOrMore>
57
+ <parameter name="name" type="string"/>
58
+ <choice>
59
+ <parameter name="value" type="string"/>
60
+ <parameter name="value" mimetype="text/plain"/>
61
+ <parameter name="content" mimetype="text/xml"/> <!-- add everything inside the root tag -->
62
+ <parameter name="content" type="string"/> <!-- add everything inside the root tag -->
63
+ </choice>
64
+ </oneOrMore>
65
+ </message>
66
+
67
+ <message name="propertylist">
68
+ <parameter name="properties" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
69
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/properties/1.0">
70
+ <start>
71
+ <element name="properties">
72
+ <zeroOrMore>
73
+ <ref name="property"/>
74
+ </zeroOrMore>
75
+ </element>
76
+ </start>
77
+
78
+ <define name="property">
79
+ <element>
80
+ <anyName/>
81
+ <data type="string"/>
82
+ </element>
83
+ </define>
84
+
85
+ </grammar>
86
+ </parameter>
87
+ </message>
88
+ <message name="addcontent">
89
+ <choice>
90
+ <parameter name="value" type="string"/>
91
+ <parameter name="value" mimetype="text/xml"/>
92
+ </choice>
93
+ </message>
94
+ <message name="updcontent">
95
+ <choice>
96
+ <parameter name="value" type="string"/>
97
+ <parameter name="value" mimetype="text/plain"/>
98
+ <parameter name="content" mimetype="text/xml"/> <!-- add everything inside the root tag -->
99
+ <parameter name="content" type="string"/> <!-- add everything inside the root tag -->
100
+ </choice>
101
+ </message>
102
+ <message name="property">
103
+ <parameter name="name" type="string">
104
+ <param name="pattern">[a-zA-Z_][a-zA-Z0-9_]*</param>
105
+ </parameter>
106
+ <choice>
107
+ <parameter name="value" type="string"/>
108
+ <parameter name="value" mimetype="text/plain"/>
109
+ <parameter name="content" mimetype="text/xml"/> <!-- add everything inside the root tag -->
110
+ <parameter name="content" type="string"/> <!-- add everything inside the root tag -->
111
+ </choice>
112
+ </message>
113
+ <message name="query">
114
+ <parameter name="query" type="string"/>
115
+ </message>
116
+
117
+ <resource pattern="http://riddl.org/ns/common-patterns/properties/1.0">
118
+ <get in="*" out="resource-document"/>
119
+ <get in="query" out="value"/>
120
+ <resource relative="schema">
121
+ <get in="*" out="resource-document-schema"/>
122
+ <resource relative="rng">
123
+ <get in="*" out="resource-document-schema"/>
124
+ </resource>
125
+ <resource relative="xsd">
126
+ <get in="*" out="resource-document-schema"/>
127
+ </resource>
128
+ </resource>
129
+ <resource relative="values">
130
+ <get in="*" out="propertylist"/>
131
+ <post in="property"/>
132
+ <put in="properties"/>
133
+ <resource>
134
+ <get in="*" out="value"/>
135
+ <delete in="*"/>
136
+ <post in="addcontent"/>
137
+ <put in="updcontent"/>
138
+ <resource>
139
+ <get in="*" out="value"/>
140
+ <put in="updcontent"/>
141
+ <delete in="*"/>
142
+ <resource recursive='true'>
143
+ <get in="*" out="value"/>
144
+ </resource>
145
+ </resource>
146
+ </resource>
147
+ </resource>
148
+ </resource>
149
+
150
+ </description>
@@ -0,0 +1,79 @@
1
+ <?xml version="1.0"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/datatypes/1.0">
3
+
4
+ <define name="riddl-datatype-relpath">
5
+ <data type="string">
6
+ <param name="pattern">[\c+*?.\\]+</param>
7
+ </data>
8
+ </define>
9
+ <define name="riddl-datatype-pathtemplate">
10
+ <data type="string">
11
+ <param name="pattern">/|(/(\c+|\{\}))*</param>
12
+ </data>
13
+ </define>
14
+
15
+ <define name="riddl-datatype-name-star">
16
+ <data type="string">
17
+ <param name="pattern">\i\c*|\*</param>
18
+ </data>
19
+ </define>
20
+ <define name="riddl-datatype-name">
21
+ <data type="string">
22
+ <param name="pattern">\i\c*</param>
23
+ </data>
24
+ </define>
25
+
26
+ <define name="riddl-att-name">
27
+ <attribute name="name">
28
+ <ref name="riddl-datatype-name"/>
29
+ </attribute>
30
+ </define>
31
+ <define name="riddl-att-col-remove">
32
+ <optional>
33
+ <ref name="riddl-att-name-star"/>
34
+ </optional>
35
+ <optional>
36
+ <attribute name="type">
37
+ <choice>
38
+ <value>header</value>
39
+ <value>parameter</value>
40
+ </choice>
41
+ </attribute>
42
+ </optional>
43
+ </define>
44
+ <define name="riddl-att-name-star">
45
+ <attribute name="name">
46
+ <ref name="riddl-datatype-name-star"/>
47
+ </attribute>
48
+ </define>
49
+ <define name="riddl-att-method">
50
+ <attribute name="method">
51
+ <data type="string">
52
+ <param name="pattern">[a-z]+</param>
53
+ </data>
54
+ </attribute>
55
+ </define>
56
+ <define name="riddl-atts-request">
57
+ <choice>
58
+ <attribute name="pass">
59
+ <ref name="riddl-datatype-name-star"/>
60
+ </attribute>
61
+ <attribute name="transformation">
62
+ <ref name="riddl-datatype-name"/>
63
+ </attribute>
64
+ <group>
65
+ <optional>
66
+ <attribute name="in">
67
+ <ref name="riddl-datatype-name-star"/>
68
+ </attribute>
69
+ </optional>
70
+ <optional>
71
+ <attribute name="out">
72
+ <ref name="riddl-datatype-name"/>
73
+ </attribute>
74
+ </optional>
75
+ </group>
76
+ </choice>
77
+ </define>
78
+
79
+ </grammar>