-
Notifications
You must be signed in to change notification settings - Fork 613
/
infinispan-config-10.0.xsd
2429 lines (2347 loc) · 112 KB
/
infinispan-config-10.0.xsd
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
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema elementFormDefault="qualified"
version="1.0" targetNamespace="urn:infinispan:config:10.0"
xmlns:tns="urn:infinispan:config:10.0"
xmlns:jgroups="urn:org:jgroups"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="urn:org:jgroups" schemaLocation="http://www.jgroups.org/schema/jgroups-4.0.xsd"/>
<xs:element name="infinispan" type="tns:infinispan">
<xs:annotation>
<xs:documentation>
Defines the configuration for Infinispan, for the cache manager configuration, for the default cache, and for named caches.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="infinispan">
<xs:sequence>
<xs:element name="jgroups" type="tns:jgroups" minOccurs="0">
<xs:annotation>
<xs:documentation>Defines JGroups stacks.</xs:documentation>
</xs:annotation>
<xs:unique name="stack_id_unique">
<xs:selector xpath="./tns:stack|./tns:stack-file" />
<xs:field xpath="@name" />
</xs:unique>
</xs:element>
<xs:element name="threads" type="tns:threads" minOccurs="0">
<xs:annotation>
<xs:documentation>Defines the threading subsystem.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="cache-container" type="tns:cache-container">
<xs:annotation>
<xs:documentation>Defines an embedded cache container.</xs:documentation>
</xs:annotation>
<xs:unique name="cache_id_unique">
<xs:selector xpath="./tns:local-cache|./tns:local-cache-configuration|./tns:invalidation-cache|./tns:invalidation-cache-configuration|./tns:replicated-cache|./tns:replicated-cache-configuration|./tns:distributed-cache|./tns:distributed-cache-configuration" />
<xs:field xpath="@name" />
</xs:unique>
</xs:element>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="jgroups">
<xs:annotation>
<xs:documentation>
Defines JGroups transport stacks.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="stack-file" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>
Defines an individual JGroups stack, pointing to the file containing its definition.
</xs:documentation>
</xs:annotation>
<xs:attribute name="name" type="xs:string">
<xs:annotation><xs:documentation>Name of the stack, to be referenced by transport's stack attribute.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="path" type="xs:string">
<xs:annotation><xs:documentation>Path of JGroups configuration file containing stack definition.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="stack" type="tns:jgroups-stack" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="transport" type="xs:string" default="org.infinispan.remoting.transport.jgroups.JGroupsTransport">
<xs:annotation>
<xs:documentation>Class that represents a network transport. Must implement org.infinispan.remoting.transport.Transport.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="jgroups-stack">
<xs:complexContent>
<xs:extension base="jgroups:ConfigType">
<xs:sequence>
<xs:element name="remote-sites" type="tns:jgroups-remote-sites" minOccurs="0">
<xs:annotation>
<xs:documentation>
Defines the relay configuration.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Name of the stack, to be referenced by transport's stack attribute.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="extends" type="xs:string">
<xs:annotation>
<xs:documentation>The base stack to extend.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jgroups-remote-sites">
<xs:sequence>
<xs:element name="remote-site" type="tns:jgroups-stack-relay-remote-site" />
</xs:sequence>
<xs:attribute name="default-stack" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="jgroups-stack-relay-remote-site">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="stack" type="xs:string"/>
</xs:complexType>
<xs:complexType name="threads">
<xs:annotation>
<xs:documentation>
The threading subsystem, used to declare manageable thread pools and resources.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="thread-factory" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>
<![CDATA[
A thread factory (implementing java.util.concurrent.ThreadFactory). The "name" attribute is
the bean name of the created thread factory. The optional "priority" attribute may be used to specify
the thread priority of created threads. The optional "group-name" attribute specifies the name of a the
thread group to create for this thread factory.
The "thread-name-pattern" is the template used to create names for threads. The following patterns
may be used:
%% - emit a percent sign
%t - emit the per-factory thread sequence number
%g - emit the global thread sequence number
%f - emit the factory sequence number
%i - emit the thread ID
%G - emit the thread group name
]]>
</xs:documentation>
</xs:annotation>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="group-name" type="xs:string" use="optional"/>
<xs:attribute name="thread-name-pattern" type="xs:string" use="optional" />
<xs:attribute name="priority" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="blocking-bounded-queue-thread-pool" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>
<![CDATA[
A thread pool executor with a bounded queue. Such a thread pool has a core size and a queue with an
upper bound. When a task is submitted, if the number of running threads is less than the core size,
a new thread is created. Otherwise, the task is placed in queue. If too many tasks are allowed to be
submitted to this type of executor, an out of memory condition may occur.
The "name" attribute is the bean name of the created executor.
The "max-threads" attribute must be used to specify the maximum thread pool size.
The "core-threads" attribute defines the number of threads to keep in the pool.
The nested "keepalive-time" element may used to specify the amount of time that pool threads should
be kept running when idle; if not specified, threads will run until the executor is shut down.
The "thread-factory" element specifies the bean name of a specific thread factory to use to create worker
threads.
]]>
</xs:documentation>
</xs:annotation>
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="thread-factory" type="xs:string" use="optional"/>
<xs:attribute name="max-threads" type="xs:int"/>
<xs:attribute name="core-threads" type="xs:int"/>
<xs:attribute name="keepalive-time" type="xs:string" use="optional"/>
<xs:attribute name="queue-length" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="cached-thread-pool" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>
<![CDATA[
A thread pool executor that creates new threads as needed, but
will reuse previously constructed threads when they are available.
The "name" attribute is the bean name of the created executor.
The "thread-factory" element specifies the bean name of a specific thread factory to use to create worker
threads.
]]>
</xs:documentation>
</xs:annotation>
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="thread-factory" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="scheduled-thread-pool" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>
<![CDATA[
A thread pool executor that creates a single-threaded executor
that can schedule commands to run after a given delay, or to
execute periodically.
The "name" attribute is the bean name of the created executor.
The "thread-factory" element specifies the bean name of a specific thread factory to use to create worker
threads.
]]>
</xs:documentation>
</xs:annotation>
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="thread-factory" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="cache-container">
<xs:sequence>
<xs:element name="transport" type="tns:transport" minOccurs="0">
<xs:annotation>
<xs:documentation>Overrides the transport characteristics for this cache container.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="security" type="tns:global-security" minOccurs="0">
<xs:annotation>
<xs:documentation>Configures security for this cache container.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="serialization" type="tns:serialization" minOccurs="0">
<xs:annotation>
<xs:documentation>Specifies how data serialization will be performed by the cache container.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="jmx" type="tns:jmx" minOccurs="0">
<xs:annotation>
<xs:documentation>Defines JMX management details.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="global-state" type="tns:global-state" minOccurs="0">
<xs:annotation>
<xs:documentation>Defines the global state persistence configuration. If this element is not present, global state persistence will be disabled.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="local-cache" type="tns:local-cache">
<xs:annotation>
<xs:documentation>Defines a LOCAL mode cache.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="local-cache-configuration" type="tns:local-cache">
<xs:annotation>
<xs:documentation>Defines a LOCAL mode cache configuration.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="replicated-cache" type="tns:replicated-cache">
<xs:annotation>
<xs:documentation>Defines a REPL_* mode cache.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="replicated-cache-configuration" type="tns:replicated-cache">
<xs:annotation>
<xs:documentation>Defines a REPL_* mode cache configuration.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="invalidation-cache" type="tns:invalidation-cache">
<xs:annotation>
<xs:documentation>Defines an INVALIDATION_* mode cache.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="invalidation-cache-configuration" type="tns:invalidation-cache">
<xs:annotation>
<xs:documentation>Defines an INVALIDATION_* mode cache configuration.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="distributed-cache" type="tns:distributed-cache">
<xs:annotation>
<xs:documentation>Defines a DIST_* mode cache.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="distributed-cache-configuration" type="tns:distributed-cache">
<xs:annotation>
<xs:documentation>Defines a DIST_* mode cache configuration.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="scattered-cache" type="tns:scattered-cache">
<xs:annotation>
<xs:documentation>Defines a SCATTERED_* mode cache. Since 9.0.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="scattered-cache-configuration" type="tns:scattered-cache">
<xs:annotation>
<xs:documentation>Defines a SCATTERED_* mode cache configuration. Since 9.0.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##other"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Uniquely identifies this cache container.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="aliases" type="tns:aliases">
<xs:annotation><xs:documentation>Unused XML attribute</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="jndi-name" type="xs:string">
<xs:annotation><xs:documentation>Unused XML attribute</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="default-cache" type="xs:string">
<xs:annotation>
<xs:documentation>Indicates the default cache for this cache container</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="zero-capacity-node" type="xs:boolean" default="false">
<xs:annotation>
<xs:documentation>If 'true' then no data is stored in this node. Defaults to 'false'.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="start">
<xs:annotation><xs:documentation>Unused XML attribute</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="async-executor" type="xs:string">
<xs:annotation>
<xs:documentation>Defines the executor used for asynchronous cache operations.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="listener-executor" type="xs:string">
<xs:annotation>
<xs:documentation>Defines the executor used for asynchronous cache listener notifications.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="eviction-executor" type="xs:string">
<xs:annotation>
<xs:documentation>DEPRECATED Defines the scheduled executor used for evictions. The expiration-executor type should be used instead.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="expiration-executor" type="xs:string">
<xs:annotation>
<xs:documentation>Defines the scheduled executor used for expirations.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="persistence-executor" type="xs:string">
<xs:annotation>
<xs:documentation>Configuration for the executor service used when interacting with the persistent store.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="state-transfer-executor" type="xs:string">
<xs:annotation>
<xs:documentation>Configuration for the executor service used when applying state from other nodes during the state transfer.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="module" type="xs:string" default="org.jboss.as.clustering.infinispan">
<xs:annotation><xs:documentation>Unused XML attribute</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="statistics" type="xs:boolean" default="true">
<xs:annotation>
<xs:documentation>Determines whether or not the cache container should collect statistics. Keep disabled for optimal performance.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="shutdown-hook" type="tns:shutdown-hook-behavior">
<xs:annotation>
<xs:documentation>
Behavior of the JVM shutdown hook registered by the cache
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="transport">
<xs:attribute name="stack" type="xs:string">
<xs:annotation>
<xs:documentation>Defines the jgroups stack used by the transport.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="cluster" type="xs:string" >
<xs:annotation>
<xs:documentation>Defines the name for the underlying group communication cluster.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="executor" type="xs:string" >
<xs:annotation>
<xs:documentation>Defines the executor used for asynchronous transport communication.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="remote-command-executor" type="xs:string" >
<xs:annotation>
<xs:documentation>Configuration for the executor service used to execute remote commands. Use org.infinispan.executors.WithinThreadExecutorFactory to disable.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="lock-timeout" type="xs:long" default="240000">
<xs:annotation>
<xs:documentation>
Infinispan uses a distributed lock to maintain a coherent transaction log during state transfer or rehashing, which means that only one cache can be doing state transfer or rehashing at the same time.
This constraint is in place because more than one cache could be involved in a transaction.
This timeout controls the time to wait to acquire a distributed lock.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="node-name" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the current node. This is a friendly name to make logs, etc. make more sense. Defaults to a combination of host name and a random number (to differentiate multiple nodes on the same host)
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="machine" type="xs:string">
<xs:annotation>
<xs:documentation>
The id of the machine where this node runs.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="rack" type="xs:string">
<xs:annotation>
<xs:documentation>
The id of the rack where this node runs.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="site" type="xs:string">
<xs:annotation>
<xs:documentation>
The id of the site where this node runs.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="initial-cluster-size" type="xs:int">
<xs:annotation>
<xs:documentation>
The minimum number of nodes that must join the cluster for the cache manager to start
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="initial-cluster-timeout" type="xs:long">
<xs:annotation>
<xs:documentation>
The amount of time in milliseconds to wait for a cluster with sufficient nodes to form. Defaults to 60000
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="global-security">
<xs:sequence>
<xs:element name="authorization" minOccurs="0">
<xs:annotation>
<xs:documentation>
Configures the global authorization role to permission mapping. The presence of this element in the configuration implicitly enables authorization.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="identity-role-mapper">
<xs:annotation>
<xs:documentation>
Uses the identity role mapper where principal names are converted as-is into role names.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="common-name-role-mapper">
<xs:annotation>
<xs:documentation>
Uses the common name role mapper which assumes principal names are in Distinguished Name format and extracts the Common Name to use as a role
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="cluster-role-mapper">
<xs:annotation>
<xs:documentation>
Uses the cluster role mapper which stores the principal to role mappings within the cluster registry.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="custom-role-mapper">
<xs:annotation>
<xs:documentation>
Uses a custom role mapper.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="class" type="xs:string">
<xs:annotation>
<xs:documentation>
Class of the custom principal to role mapper
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element name="role" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Defines a new role name and assigns permissions to it.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="name" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Defines the name of the role.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="permissions" use="required" type="tns:permission-list">
<xs:annotation>
<xs:documentation>
Defines the list of permissions for the role.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="audit-logger" type="xs:string">
<xs:annotation>
<xs:documentation>
Class of the audit logger.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="serialization">
<xs:sequence>
<xs:element name="advanced-externalizer" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
AdvancedExternalizer provides an alternative way to provide externalizers for marshalling/unmarshalling user defined classes that overcome the deficiencies of the more user-friendly externalizer definition model explained in Externalizer.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="class" type="xs:string">
<xs:annotation>
<xs:documentation>
Class of the custom externalizer
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="id" type="xs:int">
<xs:annotation>
<xs:documentation>
Id of the custom externalizer
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="marshaller" type="xs:string">
<xs:annotation>
<xs:documentation>
Fully qualified name of the marshaller to use. It must implement org.infinispan.marshall.StreamingMarshaller
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="version" type="xs:string" default="71">
<xs:annotation>
<xs:documentation>
Largest allowable version to use when marshalling internal state. Set this to the lowest version cache instance in your cluster to ensure compatibility of communications. However, setting this too low will mean you lose out on the benefit of improvements in newer versions of the marshaller.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="jmx">
<xs:sequence>
<xs:element name="property" type="tns:property" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>A jmx property with name and value to be passed to the MBean Server lookup instance.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="domain" type="xs:string" default="${GlobalJmxStatistics.jmxDomain}">
<xs:annotation>
<xs:documentation>
If JMX statistics are enabled then all 'published' JMX objects will appear under this name. This is optional, if not specified an object name will be created for you by default.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="mbean-server-lookup" type="xs:string" default="${GlobalJmxStatistics.mBeanServerLookup}">
<xs:annotation>
<xs:documentation>
Class that will attempt to locate a JMX MBean server to bind to. Defaults to using the platform MBean server.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="duplicate-domains" type="xs:boolean" default="${GlobalJmxStatistics.allowDuplicateDomains}">
<xs:annotation>
<xs:documentation>
If true, multiple cache manager instances could be configured under the same configured JMX domain. Each cache manager will in practice use a different JMX domain that has been calculated based on the configured one by adding an incrementing index to it.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="global-state">
<xs:sequence>
<xs:element name="persistent-location" type="tns:global-state-path" minOccurs="0">
<xs:annotation>
<xs:documentation>
Defines the filesystem path where persistent state data which needs to survive container restarts
should be stored. The data stored at this location is required for graceful
shutdown and restore. This path must NOT be shared among multiple instances.
Defaults to the user.dir system property which usually is where the
application was started. This value should be overridden to a more appropriate location.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="shared-persistent-location" type="tns:global-state-path" minOccurs="0">
<xs:annotation>
<xs:documentation>
Defines the filesystem path where shared persistent state data which needs to survive container restarts
should be stored. This path can be safely shared among multiple instances.
Defaults to the user.dir system property which usually is where the
application was started. This value should be overridden to a more appropriate location.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="temporary-location" type="tns:global-state-path" minOccurs="0">
<xs:annotation>
<xs:documentation>
Defines the filesystem path where temporary state should be stored. Defaults to the value of the
java.io.tmpdir system property.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:choice minOccurs="0">
<xs:element name="immutable-configuration-storage">
<xs:annotation>
<xs:documentation>
An immutable configuration storage.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="volatile-configuration-storage">
<xs:annotation>
<xs:documentation>
A non-persistent configuration storage.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="overlay-configuration-storage">
<xs:annotation>
<xs:documentation>
A persistent configuration storage which saves runtime configurations to the persistent-location.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="managed-configuration-storage">
<xs:annotation>
<xs:documentation>
A persistent configuration storage for managed environments. This doesn't work in embedded mode.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="custom-configuration-storage">
<xs:annotation>
<xs:documentation>
Uses a custom configuration storage implementation.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="class" type="xs:string">
<xs:annotation>
<xs:documentation>
Class of the custom configuration storage implementation.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="global-state-path">
<xs:attribute name="relative-to" type="xs:string" default="jboss.server.data.dir">
<xs:annotation>
<xs:documentation>Ignored in embedded mode.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="path" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Defines the path where global state for this cache-container will be stored.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="cache" abstract="true">
<xs:sequence>
<xs:element name="backups" type="tns:backups" minOccurs="0">
<xs:annotation>
<xs:documentation>The state transfer configuration for distribution and replicated caches.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="backup-for" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Configures this cache as a backup for a remote cache.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="remote-cache" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
The name of the remote cache that backups data here.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="remote-site" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
The name of the remote site containing the cache that backups data here.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="encoding" type="tns:encoding" minOccurs="0">
<xs:annotation>
<xs:documentation>The cache encoding configuration.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="locking" type="tns:locking" minOccurs="0">
<xs:annotation>
<xs:documentation>The locking configuration of the cache.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="transaction" type="tns:transaction" minOccurs="0">
<xs:annotation>
<xs:documentation>The cache transaction configuration.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="eviction" type="tns:eviction" minOccurs="0">
<xs:annotation>
<xs:documentation>The cache eviction configuration.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="expiration" type="tns:expiration" minOccurs="0">
<xs:annotation>
<xs:documentation>The cache expiration configuration.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="compatibility" type="tns:compatibility" minOccurs="0">
<xs:annotation>
<xs:documentation>Deprecated. The cache compatibility mode configuration.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="store-as-binary" type="tns:store-as-binary" minOccurs="0">
<xs:annotation>
<xs:documentation>Configures the cache to store data in binary format.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="persistence" type="tns:persistence" minOccurs="0">
<xs:annotation>
<xs:documentation>Configures the cache's persistence layer.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="versioning" type="tns:versioning" minOccurs="0">
<xs:annotation>
<xs:documentation>
Controls whether entries are versioned. Versioning is necessary, for example, when using optimistic transactions in a clustered environment, to be able to perform write-skew checks.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="data-container" type="tns:data-container" minOccurs="0">
<xs:annotation>
<xs:documentation>
Controls the data container for the cache.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="memory" type="tns:memory" minOccurs="0">
<xs:annotation>
<xs:documentation>
Controls how the entries are stored in memory
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="indexing" minOccurs="0">
<xs:annotation>
<xs:documentation>
Defines indexing options for cache
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="indexed-entities" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Defines the indexed entity classes</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="indexed-entity" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Indexed entity class name</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="property" type="tns:property" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Property to pass on to the indexing system</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="index" type="tns:indexing" default="${Indexing.index}">
<xs:annotation>
<xs:documentation>The indexing mode of the cache. Defaults to NONE.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="auto-config" type="xs:boolean" default="${Indexing.autoConfig}" use="optional">
<xs:annotation>
<xs:documentation>Whether or not to apply automatic index configuration based on cache type</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="custom-interceptors" type="tns:custom-interceptors" minOccurs="0">
<xs:annotation>
<xs:documentation>Configures custom interceptors to be added to the cache.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="security" type="tns:cache-security" minOccurs="0">
<xs:annotation>
<xs:documentation>Configures cache-level security.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:ID" use="required">
<xs:annotation>
<xs:documentation>Uniquely identifies this cache within its cache container.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="configuration" type="xs:IDREF">
<xs:annotation>
<xs:documentation>The name of the cache configuration which this configuration inherits from.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="start">
<xs:annotation><xs:documentation>Unused XML attribute</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="jndi-name" type="xs:string">
<xs:annotation><xs:documentation>Unused XML attribute</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="module" type="xs:string">
<xs:annotation><xs:documentation>Unused XML attribute</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="statistics" type="xs:boolean" default="${JMXStatistics.enabled}">
<xs:annotation>
<xs:documentation>Determines whether or not the cache should collect statistics. Keep disabled for optimal performance.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="statistics-available" type="xs:boolean" default="${JMXStatistics.available}">
<xs:annotation>
<xs:documentation>If set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="deadlock-detection-spin" type="xs:long" default="${DeadlockDetection.spinDuration}">
<xs:annotation>
<xs:documentation>
Deprecated since 9.0, deadlock detection is always disabled.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="unreliable-return-values" type="xs:boolean" default="${Unsafe.unreliable-return-values}">
<xs:annotation>
<xs:documentation>
Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="local-cache">
<xs:complexContent>
<xs:extension base="tns:cache">
<xs:attribute name="simple-cache" default="${Configuration.simpleCache}">
<xs:annotation>
<xs:documentation>
This cache will be using optimized (faster) implementation that does not support transactions/invocation batching, persistence, custom interceptors, indexing, store-as-binary or compatibility. Also, this type of cache does not support Map-Reduce jobs or Distributed Executor framework.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="locking">
<xs:attribute name="isolation" type="tns:isolation" default="${Locking.isolationLevel}">
<xs:annotation>
<xs:documentation>Sets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="striping" type="xs:boolean" default="${Locking.striping}">
<xs:annotation>
<xs:documentation>If true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="acquire-timeout" type="xs:long" default="${Locking.lockAcquisitionTimeout}">
<xs:annotation>
<xs:documentation>Maximum time to attempt a particular lock acquisition.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="concurrency-level" type="xs:int" default="${Locking.concurrencyLevel}">
<xs:annotation>
<xs:documentation>Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="write-skew" type="xs:boolean" default="${Locking.writeSkewCheck}">
<xs:annotation>
<xs:documentation>
(Deprecated) This setting is only applicable in the case of REPEATABLE_READ. When write skew check is set to false, if the writer at commit time discovers that the working entry and the underlying entry have different versions, the working entry will overwrite the underlying entry. If true, such version conflict - known as a write-skew - will throw an Exception. Defaults to false.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="transaction">
<xs:attribute name="mode" type="tns:transaction-mode" default="NONE">
<xs:annotation>
<xs:documentation>Sets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="stop-timeout" type="xs:long" default="${Transaction.stop-timeout}">
<xs:annotation>
<xs:documentation>If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="locking" type="tns:locking-mode" default="${Transaction.locking}">
<xs:annotation>
<xs:documentation>The locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="transaction-manager-lookup" type="xs:string" default="${Transaction.transaction-manager-lookup}">
<xs:annotation>
<xs:documentation>
Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="complete-timeout" type="xs:long" default="${Transaction.complete-timeout}">
<xs:annotation>
<xs:documentation>
The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="reaper-interval" type="xs:long" default="${Transaction.reaper-wake-up-interval}">
<xs:annotation>
<xs:documentation>
The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="auto-commit" type="xs:boolean" default="${Transaction.auto-commit}">
<xs:annotation>
<xs:documentation>
If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="protocol" type="tns:transaction-protocol">
<xs:annotation>
<xs:documentation>
Configures the commit protocol to use.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="recovery-cache" type="xs:string" default="${Recovery.recoveryInfoCacheName}">
<xs:annotation>
<xs:documentation>
Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="notifications" type="xs:boolean" default="${Transaction.notifications}">
<xs:annotation>
<xs:documentation>
Enables or disables triggering transactional notifications on cache listeners. By default is enabled.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>