source: cats/SCHEMAcat/trunk/urn.org.isocat.schemacat.access.data/access/schemaMetadata.dpml @ 4366

Last change on this file since 4366 was 4366, checked in by andmor, 10 years ago

Added resource endpoint (SOURCE and SINK verbs) for the user IDs authorized to access a schema.
Data layer cache reviewed due to new SINK call.
Improved log messages when SINK or NEW verbs are called on the 'user' resource.

File size: 5.8 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<sequence debug="false">
3    <sloot-debug>
4        <request>
5            <verb>SINK</verb>
6            <identifier>res:/debug/org.isocat.schemacat.access.data.schema.metadata.unresolved-arguments.xml</identifier>
7            <argument name="primary">arg:arguments</argument>
8        </request>
9    </sloot-debug>
10    <!-- resolve the references in arg:arguments -->
11    <request assignment="arguments">
12        <identifier>active:sloot.dpml.resolve-arguments</identifier>
13        <argument name="primary">arg:arguments</argument>
14    </request>
15    <request assignment="user">
16        <!-- requesting scratch:user in here seems expire this response -->
17        <header name="exclude-dependencies">
18            <literal type="boolean">true</literal>
19        </header>
20        <identifier>scratch:user</identifier>
21    </request>
22    <sloot-debug>
23        <request>
24            <verb>SINK</verb>
25            <identifier>res:/debug/org.isocat.schemacat.access.data.schema.metadata.resolved-arguments.xml</identifier>
26            <argument name="primary">this:arguments</argument>
27        </request>
28        <log>
29            <level>INFO</level>
30            <message>
31                <literal type="string">[access.data] Schema metadata accessor verb: [%1] with arguments:&#10;[&#10;%2]</literal>
32            </message>
33            <param>arg:verb</param>
34            <param>this:arguments</param>
35        </log>
36    </sloot-debug>
37    <switch assignment="response">
38        <cond method="identity">
39            <request>
40                <identifier>active:sloot.xpath2</identifier>
41                <argument name="operand">arg:verb</argument>
42                <argument name="operator">
43                    <literal type="string">boolean(.='NEW')</literal>
44                </argument>
45            </request>
46        </cond>
47        <then>
48            <sequence></sequence>
49        </then>
50        <cond method="identity">
51            <request>
52                <identifier>active:sloot.xpath2</identifier>
53                <argument name="operand">arg:verb</argument>
54                <argument name="operator">
55                    <literal type="string">boolean(.='EXISTS')</literal>
56                </argument>
57            </request>
58        </cond>
59        <then>
60            <sequence></sequence>
61        </then>
62        <cond method="identity">
63            <request>
64                <identifier>active:sloot.xpath2</identifier>
65                <argument name="operand">arg:verb</argument>
66                <argument name="operator">
67                    <literal type="string">boolean(.='SINK')</literal>
68                </argument>
69            </request>
70        </cond>
71        <then>
72            <sequence></sequence>
73        </then>
74        <cond method="identity">
75            <request>
76                <identifier>active:sloot.xpath2</identifier>
77                <argument name="operand">arg:verb</argument>
78                <argument name="operator">
79                    <literal type="string">boolean(.='SOURCE')</literal>
80                </argument>
81            </request>
82        </cond>
83        <then>
84            <sequence>
85                <log>
86                    <level>INFO</level>
87                    <message>
88                        <literal type="string">[access.data] [%1] requested schema metadata with id: [%2]</literal>
89                    </message>
90                    <param>
91                        <request>
92                            <identifier>active:xpath2</identifier>
93                            <argument name="operand">this:user</argument>
94                            <argument name="operator">
95                                <literal type="string">string(/sc:user/@xml:id)</literal>
96                            </argument>
97                        </request>
98                    </param>
99                    <param>arg:id</param>
100                </log>
101                <request assignment="response">
102                    <header name="exclude-dependencies">
103                        <literal type="boolean">true</literal>
104                    </header>
105                    <identifier>active:org.basex.query</identifier>
106                    <argument name="operator">
107                        <literal type="xml">
108                            <query xmlns:sc="http://www.isocat.org/ns/schemacat">
109                                copy $schema := /sc:schema[@xml:id=$args//id]
110                                modify ( if(exists($schema/sc:license)) then replace node $schema/sc:license with /sc:licenses/sc:license[@xml:id eq $schema/sc:license/@ref] else () )
111                                return $schema
112                            </query>
113                        </literal>
114                    </argument>
115                    <argument name="args">this:arguments</argument>
116                </request>
117            </sequence>
118        </then>
119    </switch>
120    <request>
121        <identifier>active:attachGoldenThread</identifier>
122        <argument name="id">schemaMetadataCache</argument>
123    </request>
124    <sloot-debug>
125        <log>
126            <level>INFO</level>
127            <message>
128                <literal type="string">[access.data] Schema metadata accessor response:&#xA;[&#xA;%1&#xA;]</literal>
129            </message>
130            <param>
131                <request>
132                    <identifier>response-string</identifier>
133                    <verb>TRANSREPT</verb>
134                    <representation>java.lang.String</representation>
135                    <argument name="primary">this:response</argument>
136                </request>
137            </param>
138        </log>
139        <request>
140            <verb>SINK</verb>
141            <identifier>res:/debug/org.isocat.schemacat.access.data.schema.metadata.result.xml</identifier>
142            <argument name="primary">this:response</argument>
143        </request>
144    </sloot-debug>
145</sequence>
Note: See TracBrowser for help on using the repository browser.