kwaff 1.0.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 (85) hide show
  1. data/COPYING +340 -0
  2. data/ChangeLog.txt +118 -0
  3. data/README.txt +96 -0
  4. data/bin/kwaff +131 -0
  5. data/doc/docstyle.css +307 -0
  6. data/doc/examples.html +1283 -0
  7. data/doc/users-guide.html +395 -0
  8. data/examples/Makefile +17 -0
  9. data/examples/ant/Makefile +7 -0
  10. data/examples/ant/build.kwaff +57 -0
  11. data/examples/hibernate/AuctionItem.hbm.kwaff +45 -0
  12. data/examples/hibernate/Bid.hbm.kwaff +42 -0
  13. data/examples/hibernate/Makefile +9 -0
  14. data/examples/hibernate/User.hbm.kwaff +65 -0
  15. data/examples/hibernate/hibernate.cfg.kwaff +17 -0
  16. data/examples/seasar2/Makefile +9 -0
  17. data/examples/seasar2/seasar2.kwaff +62 -0
  18. data/examples/servlet/Makefile +9 -0
  19. data/examples/servlet/web.kwaff +37 -0
  20. data/examples/spring/Makefile +9 -0
  21. data/examples/spring/applicationContext.kwaff +147 -0
  22. data/examples/xhtml/Makefile +9 -0
  23. data/examples/xhtml/README.kwaff +84 -0
  24. data/examples/xi/Makefile +9 -0
  25. data/examples/xi/bbs.kwaff +58 -0
  26. data/lib/kwaff.rb +85 -0
  27. data/lib/kwaff/doctype.rb +124 -0
  28. data/lib/kwaff/doctypes.yaml +138 -0
  29. data/lib/kwaff/errors.rb +26 -0
  30. data/lib/kwaff/node.rb +101 -0
  31. data/lib/kwaff/optparse.rb +101 -0
  32. data/lib/kwaff/orderedhash.rb +56 -0
  33. data/lib/kwaff/parser.rb +342 -0
  34. data/lib/kwaff/rexml.rb +394 -0
  35. data/lib/kwaff/translator.rb +275 -0
  36. data/setup.rb +1331 -0
  37. data/test/ex101.exp +10 -0
  38. data/test/ex101.in +8 -0
  39. data/test/ex102.exp +14 -0
  40. data/test/ex102.in +16 -0
  41. data/test/ex103.exp +13 -0
  42. data/test/ex103.in +13 -0
  43. data/test/ex104.exp +24 -0
  44. data/test/ex104.in +24 -0
  45. data/test/ex105.exp +12 -0
  46. data/test/ex105.in +18 -0
  47. data/test/ex106.exp +22 -0
  48. data/test/ex106.in +21 -0
  49. data/test/ex107.exp +14 -0
  50. data/test/ex107.in +14 -0
  51. data/test/ex111.exp +7 -0
  52. data/test/ex111.in +13 -0
  53. data/test/ex112.exp +15 -0
  54. data/test/ex112.in +16 -0
  55. data/test/ex113.exp +23 -0
  56. data/test/ex113.in +22 -0
  57. data/test/ex114.exp +12 -0
  58. data/test/ex114.in +17 -0
  59. data/test/ex115.exp +9 -0
  60. data/test/ex115.in +12 -0
  61. data/test/ex121.exp +10 -0
  62. data/test/ex121.in +8 -0
  63. data/test/ex122.exp +10 -0
  64. data/test/ex122.in +8 -0
  65. data/test/ex301.exp +13 -0
  66. data/test/ex301.in +14 -0
  67. data/test/ex302.exp +15 -0
  68. data/test/ex302.in +18 -0
  69. data/test/ex303.exp +15 -0
  70. data/test/ex303.in +16 -0
  71. data/test/ex304.exp +17 -0
  72. data/test/ex304.in +15 -0
  73. data/test/ex311.exp +18 -0
  74. data/test/ex311.in +32 -0
  75. data/test/ex312.exp +21 -0
  76. data/test/ex312.in +18 -0
  77. data/test/ex313.exp +20 -0
  78. data/test/ex313.in +33 -0
  79. data/test/ex314.exp +34 -0
  80. data/test/ex314.in +24 -0
  81. data/test/ex801.exp +16 -0
  82. data/test/ex801.in +15 -0
  83. data/test/test.rb +273 -0
  84. data/todo.txt +1 -0
  85. metadata +132 -0
@@ -0,0 +1,45 @@
1
+ //
2
+ // source: hibernate-3.0/eg/org/hibernate/auction/AuctionItem.hbm.xml
3
+ //
4
+ ?doctype = @hibernate-mapping30
5
+
6
+ * hibernate-mapping
7
+ - package = org.hibernate.auction
8
+
9
+ * import
10
+ - class = AuctionInfo
11
+
12
+ * class
13
+ - name = AuctionItem
14
+ * comment = An item that is being auctioned.
15
+
16
+ * id
17
+ - name = id
18
+ * generator
19
+ - class = native
20
+
21
+ * natural-id
22
+ * many-to-one
23
+ - name = seller
24
+ * property
25
+ - name = description
26
+ - length = 200
27
+
28
+ * property
29
+ - name = ends
30
+
31
+ * property
32
+ - name = condition
33
+
34
+ * many-to-one
35
+ - name = successfulBid
36
+ - outer-join = false
37
+
38
+ * bag
39
+ - name = bids
40
+ - cascade = all
41
+ - inverse = true
42
+ * key
43
+ - column = item
44
+ * one-to-many
45
+ - class = Bid
@@ -0,0 +1,42 @@
1
+ //
2
+ // source: hibernate-3.0/eg/org/hibernate/auction/Bid.hbm.xml
3
+ //
4
+ ?doctype = @hibernate-mapping30
5
+
6
+ * hibernate-mapping
7
+ - package = org.hibernate.auction
8
+
9
+ * class
10
+ - name = Bid
11
+ - discriminator-value = N
12
+ * comment = A bid or "buy now" for an item.
13
+
14
+ * id
15
+ - name = id
16
+ * generator
17
+ - class = native
18
+
19
+ * discriminator
20
+ - type = char
21
+ * column
22
+ - name = isBuyNow
23
+ * comment = Y if a "buy now", N if a regular bid.
24
+
25
+ * natural-id
26
+ * many-to-one
27
+ - name = item
28
+ * property
29
+ - name = amount
30
+
31
+ * property
32
+ - name = datetime
33
+ - not-null = true
34
+ - column = `datetime`
35
+
36
+ * many-to-one
37
+ - name = bidder
38
+ - not-null = true
39
+
40
+ * subclass
41
+ - name = BuyNow
42
+ - discriminator-value = Y
@@ -0,0 +1,9 @@
1
+ ALL = User.hbm.xml Bid.hbm.xml AuctionItem.hbm.xml hibernate.cfg.xml
2
+
3
+ all: $(ALL)
4
+
5
+ %.xml: %.kwaff
6
+ kwaff $< > $@
7
+
8
+ clean:
9
+ rm -f $(ALL)
@@ -0,0 +1,65 @@
1
+ //
2
+ // source: hibernate-3.0/eg/org/hibernate/auction/User.hbm.xml
3
+ //
4
+ ? doctype = @hibernate-mapping30
5
+
6
+ * hibernate-mapping
7
+ - package = org.hibernate.auction
8
+
9
+ * class
10
+ - name = User
11
+ - table = AuctionUser
12
+ - lazy = true
13
+ * comment = Users may bid for or sell auction items.
14
+
15
+ * id
16
+ - name = id
17
+ * generator
18
+ - class = native
19
+
20
+ * natural-id
21
+ - mutable = true
22
+ * property
23
+ - name = userName
24
+ - length = 10
25
+
26
+ * property
27
+ - name = password
28
+ - not-null = true
29
+ - length = 15
30
+ - column = `password`
31
+
32
+ * property
33
+ - name = email
34
+
35
+ * component
36
+ - name = name
37
+ * property
38
+ - name = firstName
39
+ - length = 50
40
+ - not-null = true
41
+ * property
42
+ - name = initial
43
+ - column = `initial`
44
+ * property
45
+ - name = lastName
46
+ - length = 50
47
+ - not-null = true
48
+
49
+ * bag
50
+ - name = bids
51
+ - inverse = true
52
+ - cascade = save-update,lock
53
+ * key
54
+ - column = bidder
55
+ * one-to-many
56
+ - class = Bid
57
+
58
+ * bag
59
+ - name = auctions
60
+ - inverse = true
61
+ - cascade = save-update,lock
62
+ * key
63
+ - column = seller
64
+ * one-to-many
65
+ - class = AuctionItem
@@ -0,0 +1,17 @@
1
+ //
2
+ // source: hibernate-3.0/etc/hibernate.cfg.xml
3
+ //
4
+ ?doctype = @hibernate-configuration30
5
+
6
+ * hibernate-configuration
7
+
8
+ * session-factory
9
+ - name = foo
10
+ * property = true
11
+ - name = show_sql
12
+ * mapping
13
+ - resource = org/hibernate/test/Simple.hbm.xml
14
+ * class-cache
15
+ - usage = read-write
16
+ - class = org.hibernate.test.Simple
17
+ - region = Simple
@@ -0,0 +1,9 @@
1
+ ALL = seasar2.dicon
2
+
3
+ all: $(ALL)
4
+
5
+ %.dicon: %.kwaff
6
+ kwaff $< > $@
7
+
8
+ clean:
9
+ rm -f $(ALL)
@@ -0,0 +1,62 @@
1
+ //
2
+ // from http://www.seasar.org/DIContainer.html#Example
3
+ //
4
+ ? encoding = Shift_JIS
5
+ ? doctype = @seasar2
6
+
7
+ * components
8
+
9
+ # constructor injection
10
+ * component
11
+ - name = hello
12
+ - class = examples.dicon.HelloConstructorInjection
13
+ * arg = "Hello World!"
14
+
15
+ # setter injection
16
+ * component
17
+ - class = examples.dicon.HelloSetterInjection
18
+ * property = "Hello World!"
19
+ - name = message
20
+
21
+ # method injection
22
+ * component
23
+ - class = examples.dicon.HelloMethodInjection
24
+ * initMethod
25
+ - name = addMessage
26
+ * arg = "Hello "
27
+ * initMethod = #self.addMessage("World!")
28
+
29
+ # auto binding with constructor injection
30
+ * component
31
+ - class = java.util.HashMap
32
+ * initMethod
33
+ - name = put
34
+ * arg = "hello"
35
+ * arg = "Hello World!"
36
+ * component
37
+ - autoBinding = auto
38
+ - class = examples.dicon.autobinding.AutoHelloConstructorInjection
39
+
40
+ # auto binding with setter injection
41
+ * component
42
+ - class = java.util.HashMap
43
+ * initMethod
44
+ - name = put
45
+ * arg = "hello"
46
+ * arg = "Hello World!"
47
+ * component
48
+ - autoBinding = auto
49
+ - class = examples.dicon.autobinding.AutoHelloSetterInjection
50
+
51
+ # AOP
52
+ * component
53
+ - name = traceInterceptor
54
+ - class = org.seasar.framework.aop.interceptors.TraceInterceptor
55
+ * component
56
+ - class = java.util.ArrayList
57
+ * aspect = traceInterceptor
58
+ * component
59
+ - class = java.util.Date
60
+ * arg = 0
61
+ * aspect = traceInterceptor
62
+ - pointcut = getTime, hashCode
@@ -0,0 +1,9 @@
1
+ ALL = web.xml
2
+
3
+ all: $(ALL)
4
+
5
+ %.xml: %.kwaff
6
+ kwaff $< > $@
7
+
8
+ clean:
9
+ rm -f $(ALL)
@@ -0,0 +1,37 @@
1
+ //
2
+ // example for web.xml of J2EE Application
3
+ //
4
+ ? encoding = ISO-8859-1
5
+ ? doctype = @web-app23
6
+
7
+ * web-app
8
+
9
+ # Servlet Definition
10
+ * servlet
11
+ * servlet-name = Hello
12
+ * servlet-class = my.HelloServlet
13
+ * init-param
14
+ * param-name = request.encoding
15
+ * param-value = Windows-31J
16
+ * description = encoding of http request
17
+ * servlet
18
+ * servlet-name = action
19
+ * servlet-class = org.apache.struts.action.ActionServlet
20
+ * load-on-startup = 2
21
+
22
+ # Servlet Mappings
23
+ * servlet-mapping
24
+ * servlet-name = Hello
25
+ * url-pattern = /hello
26
+ * servlet-maping
27
+ * servlet-name = action
28
+ * url-pattern = *.do
29
+
30
+ # Taglib
31
+ * taglib
32
+ * taglib-uri = /tags/struts-bean
33
+ * taglib-location = /WEB-INF/struts-bean.tld
34
+ * taglib
35
+ * taglib-uri = /tags/struts-tiles
36
+ * taglib-location = /WEB-INF/struts-tiles.tld
37
+
@@ -0,0 +1,9 @@
1
+ ALL = applicationContext.xml
2
+
3
+ all: $(ALL)
4
+
5
+ %.xml: %.kwaff
6
+ kwaff $< > $@
7
+
8
+ clean:
9
+ rm -f $(ALL)
@@ -0,0 +1,147 @@
1
+ //
2
+ // from spring-framework-1.2.1/samples/jpetstore/war/WEB-INF/applicationContext.xml
3
+ //
4
+ ? encoding = UTF-8
5
+ ? doctype = @spring-beans
6
+
7
+ * beans
8
+
9
+ # Application context definition for JPetStore's business layer.
10
+ # Contains bean references to the transaction manager and to the DAOs in
11
+ # dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
12
+
13
+
14
+ # ========================= GENERAL DEFINITIONS =========================
15
+
16
+ # Configurer that replaces ${...} placeholders with values from properties files
17
+ # (in this case, mail and JDBC related properties)
18
+ * bean
19
+ - id = propertyConfigurer
20
+ - class = org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
21
+ * property
22
+ - name = locations
23
+ * list
24
+ * value = WEB-INF/mail.properties
25
+ * value = WEB-INF/jdbc.properties
26
+
27
+ # MailSender used by EmailAdvice
28
+ * bean
29
+ - id = mailSender
30
+ - class = org.springframework.mail.javamail.JavaMailSenderImpl
31
+ * property
32
+ - name = host
33
+ - value = ${mail.host}
34
+
35
+
36
+ # ========================= BUSINESS OBJECT DEFINITIONS ========================
37
+
38
+ # Generic validator for Account objects, to be used for example by the Spring web tier
39
+ * bean
40
+ - id = accountValidator
41
+ - class = org.springframework.samples.jpetstore.domain.logic.AccountValidator
42
+
43
+ # Generic validator for Order objects, to be used for example by the Spring web tier
44
+ * bean
45
+ - id = orderValidator
46
+ - class = org.springframework.samples.jpetstore.domain.logic.OrderValidator
47
+
48
+ # AOP advice used to send confirmation email after order has been submitted
49
+ * bean
50
+ - id = emailAdvice
51
+ - class = org.springframework.samples.jpetstore.domain.logic.SendOrderConfirmationEmailAdvice
52
+ * property
53
+ - name = mailSender
54
+ * ref
55
+ - local = mailSender
56
+
57
+ # Advisor encapsulating email advice
58
+ * bean
59
+ - id = emailAdvisor
60
+ - class = org.springframework.aop.support.RegexpMethodPointcutAdvisor
61
+ * constructor-arg
62
+ * ref
63
+ - local = emailAdvice
64
+ * property
65
+ - name = pattern
66
+ * value = .*insertOrder.*
67
+
68
+ # A parent bean definition which is a base definition for transaction proxies.
69
+ # It's marked as abstract, since it's not supposed to be instantiated itself.
70
+ # We set shared transaction attributes here, following our naming patterns.
71
+ # The attributes can still be overridden in child bean definitions.
72
+ * bean
73
+ - id = baseTransactionProxy
74
+ - class = org.springframework.transaction.interceptor.TransactionProxyFactoryBean
75
+ - abstract = true
76
+ * property
77
+ - name = transactionManager
78
+ * ref
79
+ - bean = transactionManager
80
+ * property
81
+ - name = transactionAttributes
82
+ * props
83
+ * prop = PROPAGATION_REQUIRED
84
+ - key = insert*
85
+ * prop = PROPAGATION_REQUIRED
86
+ - key = update*
87
+ * prop = PROPAGATION_REQUIRED,readOnly
88
+ - key = *
89
+
90
+ # JPetStore primary business object (default implementation), as an inner bean wrapped
91
+ # by an outer transactional proxy. The two bean definitions could have been separate,
92
+ # but this is cleaner as there is no need to ever access the unwrapped object.
93
+ * bean
94
+ - id = petStore
95
+ - parent = baseTransactionProxy
96
+ * property
97
+ - name = target
98
+ * bean
99
+ - class = org.springframework.samples.jpetstore.domain.logic.PetStoreImpl
100
+ * property
101
+ - name = accountDao
102
+ * ref
103
+ - bean = accountDao
104
+ * property
105
+ - name = categoryDao
106
+ * ref
107
+ - bean = categoryDao
108
+ * property
109
+ - name = productDao
110
+ * ref
111
+ - bean = productDao
112
+ * property
113
+ - name = itemDao
114
+ * ref
115
+ - bean = itemDao
116
+ * property
117
+ - name = orderDao
118
+ * ref
119
+ - bean = orderDao
120
+ # Uncomment the following in order to enable mail sending aspect
121
+ * property
122
+ - name = postInterceptors
123
+ * list
124
+ * ref
125
+ - local = emailAdvisor
126
+
127
+
128
+ # ========================= REMOTE EXPORTER DEFINITIONS ========================
129
+
130
+ # RMI exporter for the JPetStore OrderService
131
+ # Commented out by default to avoid conflicts with EJB containers
132
+ * bean
133
+ - id = order-rmi
134
+ - class = org.springframework.remoting.rmi.RmiServiceExporter
135
+ * property
136
+ - name = service
137
+ * ref
138
+ - local = petStore
139
+ * property
140
+ - name = serviceInterface
141
+ * value = org.springframework.samples.jpetstore.domain.logic.OrderService
142
+ * property
143
+ - name = serviceName
144
+ * value = order
145
+ * property
146
+ - name = registryPort
147
+ * value = 1099