forked from windup/windup
-
Notifications
You must be signed in to change notification settings - Fork 0
/
techReport-hierarchy.tags.xml
193 lines (177 loc) · 12.7 KB
/
techReport-hierarchy.tags.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<?xml version="1.0" encoding="UTF-8"?>
<tags setName="techReport-hierarchy">
<!-- Note for the maintainers:
The idea of tag system is:
The tag IDs from java-ee.tags.xml (and similar, which are merged into one graph) would be attached to the items within the applications.
Then, an algorithm would sum them up at the per-project level.
Then, an algorithm would sum the "child tags" of the the high-level technologies.
Then, the report would use these data to render the technology reports (and others, like Application List).
The implementation is ready to group these tags under "techBox:..." tags. For instance:
Assume a tag "jms-queue" is under "jms" which is under "java-ee".
Then, there is a tag "techBox:messaging" which contains "jms", and is under the "techSector02:Connect" tag.
So marking anything with "jms-queue" would automatically make it appear within the box labeled Messaging
under the Connect sector, under "Java-EE" row (because the box has parent "techRow:java-ee").
However, the decision was to use column/box labels, row labels and box labels as kind of coordinates
to position the technology labels within the report. It is a bit more complicated and not reusable way.
One of the complications is that it needs the tags further bellow.
Briefly to the tags system:
The tags from all *.tags.xml files are loaded in to a single graph.
It is not a tree, unlike XML. That is achieved by the parents="tagName, tagName, ...", which is equivalent to being a child in XML.
This graph should be used to capture the "is" relations between technologies (eventually other structures).
-->
<!-- These define the vertical groups? -->
<tag name="techReport-rows:" pseudo="true">
<tag name="techRow:java-ee" title="Java EE" pseudo="true">
<tag ref="techBox:web"/>
</tag>
<tag name="techRow:embedded" title="Embedded" pseudo="true">
<!-- You can place boxes under rows here, or using parents="..." - has the same effect.
<tag ref="techBox:mvc"/>
<tag ref="techBox:markup"/>
<tag ref="techBox:web-service"/>
<tag ref="techBox:object-mapping"/>
<tag ref="techBox:logging"/>
<tag ref="techBox:ioc"/>
<tag ref="techBox:3rd-party"/>
-->
</tag>
</tag>
<!-- "techReport-sectors:..." are "columns". The colors match the MZ mockup.
Tag names have a prefix to prevent collision with some real tag names.
Also, they are numbered, because we don't store order in the graph yet, so it's sorted by name in the template.
Some boxes have multiple row parents.
The parents of the boxes determines whether a technology may appear under that row.
For instance, Security may appear in both, so it has both techRow:... parents.
You can force a box to be under certain row or sector by limiting its parents to it.
-->
<tag name="techReport-sectors:" pseudo="true">
<tag name="techSector01:View" title="View" color="#1155CC" pseudo="true">
<!-- If the tech span exactly matches an existing tag (title, contained tags, ...), then use that.
If not, define a techBox:... tag, and include whichever tags it should contain. -->
<tag name="techBox:web" title="Web" pseudo="true" parents="techRow:java-ee" icon="Misc_Network-Technical">
<tag ref="web"/>
</tag>
<tag name="techBox:rich" title="Rich" pseudo="true" parents="techRow:java-ee, techRow:embedded" icon="Hardware_Monitor-Webinar">
<tag ref="applet"/>
<tag ref="jnlp"/>
</tag>
<tag name="techBox:mvc" title="MVC" pseudo="true" parents="techRow:embedded" icon="Software_Application-Window">
<tag ref="spring-mvc"/>
<tag ref="struts"/>
<tag ref="wicket"/>
<tag ref="gwt"/>
</tag>
<tag name="techBox:markup" title="Markup" pseudo="true" parents="techRow:embedded" icon="Software_Code">
<tag ref="html"/>
<tag ref="css"/>
<tag ref="javascript"/>
</tag>
</tag>
<tag name="techSector02:Connect" title="Connect" color="#38761D" pseudo="true">
<tag name="techBox:messaging" title="Messaging" pseudo="true" parents="techRow:java-ee" icon="Object_Envelope-Back">
<tag ref="jms"/>
</tag>
<tag name="techBox:ejb" title="EJB" pseudo="true" parents="techRow:java-ee" icon="Science_Molecule">
<tag ref="ejb"/>
</tag>
<tag name="techBox:http" title="HTTP" pseudo="true" parents="techRow:java-ee" icon="Elevator-UpDown">
<tag ref="jax-ws"/>
<tag ref="jax-rs"/>
</tag>
<tag name="techBox:other" title="Other" pseudo="true" parents="techRow:java-ee, techRow:embedded" icon="Podcast">
<tag ref="jca"/>
<tag ref="jni"/>
<tag ref="mail"/>
<tag ref="rmi"/>
</tag>
<tag name="techBox:webservice" title="WebService" pseudo="true" parents="techRow:embedded" icon="Global_Ecosystem">
<tag ref="webservices"/>
</tag>
<tag name="techBox:rest" title="REST" pseudo="true" parents="techRow:embedded" icon="Science_Circuit">
<tag ref="rest"/>
</tag>
</tag>
<tag name="techSector03:Store" title="Store" color="#F4B400" pseudo="true">
<!--
<tag name="techBox:orm" title="ORM" pseudo="true" parents="techRow:java-ee" icon="Diagram_DevelopmentModel">
</tag>
<tag name="techBox:ogm" title="OGM" pseudo="true" parents="techRow:java-ee" icon="Diagram_DevelopmentModel">
</tag>
-->
<tag name="techBox:jdbc" title="Database" pseudo="true" parents="techRow:java-ee" icon="Hardware_Storage-A-Stack">
<tag ref="jdbc"/>
</tag>
<tag name="techBox:caching" title="Caching" pseudo="true" parents="techRow:java-ee, techRow:embedded" icon="science_brain"><!-- Alternative: Recycle_Symbol. I couldn't find the "brain profile". -->
<tag ref="cache"/>
</tag>
<tag name="techBox:object-mapping" title="Object Mapping" pseudo="true" parents="techRow:embedded" icon="Diagram_DevelopmentModel"></tag>
<tag name="techBox:persistence" title="Persistence" pseudo="true" parents="techRow:java-ee" icon="Notepad"></tag>
<tag name="techBox:database-driver" title="Database Driver" pseudo="true" parents="techRow:embedded" icon="Car_Front"></tag>
</tag>
<tag name="techSector04:Sustain" title="Sustain" color="#DB4437" pseudo="true">
<tag name="techBox:transactions" title="Transactions" pseudo="true" parents="techRow:java-ee, techRow:embedded" icon="Object_CashRegister-POS"></tag>
<tag name="techBox:clustering" title="Clustering" pseudo="true" parents="techRow:java-ee" icon="Hardware_Server-A-Stack"></tag>
<tag name="techBox:security" title="Security" pseudo="true" parents="techRow:java-ee, techRow:embedded" icon="Object_Shield-CoatOfArms"></tag>
<tag name="techBox:logging" title="Logging" pseudo="true" parents="techRow:embedded" icon="Object_Book-Open"></tag>
<tag name="techBox:test" title="Test" pseudo="true" parents="techRow:embedded" icon="Science_Explosion"></tag>
</tag>
<tag name="techSector05:Execute" title="Execute" color="#674EA7" pseudo="true">
<tag name="techBox:processing" title="Processing" pseudo="true" parents="techRow:java-ee, techRow:embedded" icon="Hardware_Processor-Compute"/>
<tag name="techBox:ioc" title="Inversion of Control" pseudo="true" parents="techRow:java-ee, techRow:embedded" icon="Arrows_Interoperable-CrossPlatform"/>
<tag name="techBox:rules" title="Rules & Processes" pseudo="true" parents="techRow:embedded" icon="Object_Gear-Group"/>
<tag name="techBox:integration" title="Integration" pseudo="true" parents="techRow:embedded" icon="Software_API"/>
<tag name="techBox:3rd-party" title="3rd party" pseudo="true" parents="techRow:embedded" icon="Shopping_Cart"/>
</tag>
</tag>
<!-- WINDUP-1697/ This is mapping the placement names to normal tags. -->
<!-- Note for the maintainers:
These tags are needed so that it is possible to determine which non-ID labels represent what - column/box, sector, or row.
This is likely what you need to edit when adding a new label to a box, or adding or renaming a box or row or sector.
Remember that the tags form an oriented graph, so you can group the labels in any way you like.
If you make "place:JPA 2" be under "place:JPA", then both will appear in the same box.
You can also distribute the same label to 2 different boxes.
-->
<tag name="techReport:mappingOfPlacementTagNames">
<tag name="techReport:placeRows">
<tag pseudo="true" name="place:Java EE" title="Java EE" parents="techRow:java-ee"/>
<tag pseudo="true" name="place:Embedded" title="Embedded" parents="techRow:embedded"/>
</tag>
<tag name="techReport:placeSectors">
<tag pseudo="true" name="place:View" title="View" parents="techSector01:View"/>
<tag pseudo="true" name="place:Connect" title="Connect" parents="techSector02:Connect"/>
<tag pseudo="true" name="place:Store" title="Store" parents="techSector03:Store"/>
<tag pseudo="true" name="place:Sustain" title="Sustain" parents="techSector04:Sustain"/>
<tag pseudo="true" name="place:Execute" title="Execute" parents="techSector05:Execute"/>
</tag>
<tag name="techReport:placeBoxes">
<tag pseudo="true" name="place:3rd party" title="3rd party" parents="techBox:3rd-party"/>
<tag pseudo="true" name="place:Batch" title="Batch" parents="techBox:processing"/> <!-- Not a box? -->
<tag pseudo="true" name="place:Bean" title="Bean" parents="techBox:ejb"/>
<tag pseudo="true" name="place:Caching" title="Caching" parents="techBox:caching"/>
<tag pseudo="true" name="place:CDI" title="CDI" parents="techBox:processing"/> <!-- Not a box? -->
<tag pseudo="true" name="place:Clustering" title="Clustering" parents="techBox:clustering"/>
<tag pseudo="true" name="place:Database" title="Database" parents="techBox:jdbc"/>
<tag pseudo="true" name="place:Database Driver" title="Database Driver" parents="techBox:database-driver"/>
<tag pseudo="true" name="place:HTTP" title="HTTP" parents="techBox:http"/>
<tag pseudo="true" name="place:Integration" title="Integration" parents="techBox:integration"/>
<tag pseudo="true" name="place:Inversion of Control" title="Inversion of Control" parents="techBox:ioc"/>
<tag pseudo="true" name="place:JSON-P" title="JSON-P" parents="techBox:processing"/> <!-- Not a box? WINDUPRULE-296 -->
<tag pseudo="true" name="place:Logging" title="Logging" parents="techBox:logging"/>
<tag pseudo="true" name="place:Markup" title="Markup" parents="techBox:markup"/>
<tag pseudo="true" name="place:Messaging" title="Messaging" parents="techBox:messaging"/>
<tag pseudo="true" name="place:MVC" title="MVC" parents="techBox:mvc"/>
<tag pseudo="true" name="place:Object Mapping" title="Object Mapping" parents="techBox:object-mapping"/>
<tag pseudo="true" name="place:Other" title="Other" parents="techBox:other"/>
<tag pseudo="true" name="place:Persistence" title="Processing" parents="techBox:persistence"/>
<tag pseudo="true" name="place:Processing" title="Processing" parents="techBox:processing"/>
<tag pseudo="true" name="place:REST" title="REST" parents="techBox:rest"/>
<tag pseudo="true" name="place:Rich" title="Rich" parents="techBox:rich"/>
<tag pseudo="true" name="place:Rules and Processes" title="Rules and Processes" parents="techBox:rules"/>
<tag pseudo="true" name="place:Security" title="Security" parents="techBox:security"/>
<tag pseudo="true" name="place:Test" title="Test" parents="techBox:test"/>
<tag pseudo="true" name="place:Transaction" title="Transaction" parents="techBox:transactions"/>
<tag pseudo="true" name="place:Web" title="Web" parents="techBox:web"/>
<tag pseudo="true" name="place:Web Service" title="Web Service" parents="techBox:webservice"/>
</tag>
</tag>
</tags>