jbossas/jboss-as — pull request #3591 by jmesnil (2012-12-06 15:08:59+00:00)
Title: [AS7-6078] messaging: Allow expressions for attributes

* allow expression for messaging resource's attributes
unless there were references to other messaging resources (eg
connector-ref):
* reject expressions for these attributes for 1.1.0 resource
transformations
* add expressions to subsystem_incompatible_1_3.xml for all the
attributes that allows them now
* remove JournalTypeValidator and replace it by a EnumValidator

I compared the model with the 7.1.2.Final version and there is the differences below (I only displayed the allowed-expressions differences)

As a rule of thumb, I have added expressions to all messaging attributes except:
* the one referencing other messaging resources (eg connector-ref). that does not include address which are runtime resource
* deprecated attributes
* acceptor/connector params are not done completely => they will be done as part of AS7-5121 that requires some XML parsing rewriting

# Differences with 7.1.2 model

--- Problems for relative address to root ["deployment" => "*","subdeployment" => "*","subsystem" => "messaging","hornetq-server" => "*"]:

Different 'expressions-allowed' for attribute 'allow-failback'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'async-connection-execution-enabled'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'backup'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'connection-ttl-override'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'create-bindings-dir'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'create-journal-dir'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'failback-delay'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'failover-on-shutdown'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'id-cache-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'jmx-domain'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'jmx-management-enabled'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'journal-buffer-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'journal-buffer-timeout'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'journal-compact-min-files'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'journal-compact-percentage'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'journal-file-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'journal-max-io'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'journal-min-files'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'journal-sync-non-transactional'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'journal-sync-transactional'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'journal-type'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'log-journal-write-rate'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'management-address'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'management-notification-address'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'message-counter-enabled'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'message-counter-max-day-history'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'message-counter-sample-period'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'message-expiry-scan-period'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'message-expiry-thread-priority'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'page-max-concurrent-io'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'perf-blast-pages'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'persist-delivery-count-before-delivery'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'persist-id-cache'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'persistence-enabled'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'run-sync-speed-test'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'security-enabled'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'security-invalidation-interval'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'server-dump-interval'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'shared-store'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'transaction-timeout'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'transaction-timeout-scan-period'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'wild-card-routing-enabled'. Current: true; legacy: false

==> ... ditto for parameters of operation 'add'

--- Problems for relative address to root ["deployment" => "*","subdeployment" => "*","subsystem" => "messaging","hornetq-server" => "*","jms-queue" => "*"]:

Different 'expressions-allowed' for attribute 'durable'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'selector'. Current: true; legacy: false

--- Problems for relative address to root ["deployment" => "*","subsystem" => "messaging","hornetq-server" => "*"]:

==> same differences than for the subdeployment

--- Problems for relative address to root ["deployment" => "*","subsystem" => "messaging","hornetq-server" => "*","jms-queue" => "*"]:

==> same differences than for the subdeployment

====== Resource root address: ["subsystem" => "messaging"] - Current version: 1.2.0; legacy version: 1.1.0 =======
--- Problems for relative address to root ["hornetq-server" => "*"]:

==> same differences than for the subdeployment

--- Problems for relative address to root ["hornetq-server" => "*","acceptor" => "*"]:

Different 'expressions-allowed' for attribute 'factory-class'. Current: true; legacy: false
Different 'expressions-allowed' for parameter 'factory-class' of operation 'add'. Current: true; legacy: false
Different 'expressions-allowed' for parameter 'param' of operation 'add'. Current: true; legacy: false

--- Problems for relative address to root ["hornetq-server" => "*","address-setting" => "*"]:

Different 'expressions-allowed' for attribute 'address-full-policy'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'last-value-queue'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'max-delivery-attempts'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'max-size-bytes'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'message-counter-history-day-limit'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'page-max-cache-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'page-size-bytes'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'redelivery-delay'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'redistribution-delay'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'send-to-dla-on-no-route'. Current: true; legacy: false

=> ditto for parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","bridge" => "*"]:

Different 'expressions-allowed' for attribute 'check-period'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'confirmation-window-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'connection-ttl'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'filter'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'forwarding-address'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'ha'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'max-retry-interval'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'min-large-message-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'queue-name'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'reconnect-attempts'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'retry-interval'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'retry-interval-multiplier'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'transformer-class-name'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'use-duplicate-detection'. Current: true; legacy: false

=> ditto for parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","broadcast-group" => "*"]:

Different 'expressions-allowed' for attribute 'broadcast-period'. Current: true; legacy: false

=> ditto for parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","cluster-connection" => "*"]:

Different 'expressions-allowed' for attribute 'allow-direct-connections-only'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'call-timeout'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'check-period'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'cluster-connection-address'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'confirmation-window-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'connection-ttl'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'forward-when-no-consumers'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'max-hops'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'max-retry-interval'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'min-large-message-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'reconnect-attempts'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'retry-interval'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'retry-interval-multiplier'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'use-duplicate-detection'. Current: true; legacy: false

=> ditto for parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","connection-factory" => "*"]:

Different 'expressions-allowed' for attribute 'auto-group'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'block-on-acknowledge'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'block-on-durable-send'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'block-on-non-durable-send'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'cache-large-message-client'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'call-timeout'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'client-failure-check-period'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'compress-large-messages'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'confirmation-window-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'connection-load-balancing-policy-class-name'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'connection-ttl'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'consumer-max-rate'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'consumer-window-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'dups-ok-batch-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'factory-type'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'failover-on-initial-connection'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'group-id'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'ha'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'max-retry-interval'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'min-large-message-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'pre-acknowledge'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'producer-max-rate'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'producer-window-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'reconnect-attempts'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'retry-interval'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'retry-interval-multiplier'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'transaction-batch-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'use-global-pools'. Current: true; legacy: false

==> same differences for the parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","connector" => "*"]:

Different 'expressions-allowed' for attribute 'factory-class'. Current: true; legacy: false
Different 'expressions-allowed' for parameter 'factory-class' of operation 'add'. Current: true; legacy: false
Different 'expressions-allowed' for parameter 'param' of operation 'add'. Current: true; legacy: false

--- Problems for relative address to root ["hornetq-server" => "*","connector-service" => "*"]:

Different 'expressions-allowed' for attribute 'factory-class'. Current: true; legacy: false

=> ditto for parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","discovery-group" => "*"]:

Different 'expressions-allowed' for attribute 'initial-wait-timeout'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'refresh-timeout'. Current: true; legacy: false

=> ditto for parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","divert" => "*"]:

Different 'expressions-allowed' for attribute 'divert-address'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'exclusive'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'filter'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'forwarding-address'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'routing-name'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'transformer-class-name'. Current: true; legacy: false

=> ditto for parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","grouping-handler" => "*"]:

Different 'expressions-allowed' for attribute 'grouping-handler-address'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'timeout'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'type'. Current: true; legacy: false

=> ditto for parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","in-vm-acceptor" => "*"]:

Different 'expressions-allowed' for parameter 'param' of operation 'add'. Current: true; legacy: false

--- Problems for relative address to root ["hornetq-server" => "*","in-vm-connector" => "*"]:

Different 'expressions-allowed' for parameter 'param' of operation 'add'. Current: true; legacy: false

--- Problems for relative address to root ["hornetq-server" => "*","jms-queue" => "*"]:

Different 'expressions-allowed' for attribute 'durable'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'selector'. Current: true; legacy: false

=> ditto for parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","path" => "bindings-directory"]:

Different 'expressions-allowed' for attribute 'path'. Current: true; legacy: false
Different 'expressions-allowed' for parameter 'path' of operation 'add'. Current: true; legacy: false

=> ditto for other path resources journal-directory, large-messages-directory & paging-directory

--- Problems for relative address to root ["hornetq-server" => "*","pooled-connection-factory" => "*"]:

Different 'expressions-allowed' for attribute 'auto-group'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'block-on-acknowledge'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'block-on-durable-send'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'block-on-non-durable-send'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'cache-large-message-client'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'call-timeout'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'client-failure-check-period'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'confirmation-window-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'connection-load-balancing-policy-class-name'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'connection-ttl'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'consumer-max-rate'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'consumer-window-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'dups-ok-batch-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'failover-on-initial-connection'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'group-id'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'ha'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'jndi-params'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'max-retry-interval'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'min-large-message-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'pre-acknowledge'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'producer-max-rate'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'producer-window-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'reconnect-attempts'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'retry-interval'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'retry-interval-multiplier'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'setup-attempts'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'setup-interval'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'transaction'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'transaction-batch-size'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'use-global-pools'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'use-jndi'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'use-local-tx'. Current: true; legacy: false

=> ditto for parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","queue" => "*"]:

Different 'expressions-allowed' for attribute 'durable'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'filter'. Current: true; legacy: false
Different 'expressions-allowed' for attribute 'queue-address'. Current: true; legacy: false

=> ditto for parameters of operation 'add'

--- Problems for relative address to root ["hornetq-server" => "*","remote-acceptor" => "*"]:

Different 'expressions-allowed' for parameter 'param' of operation 'add'. Current: true; legacy: false

--- Problems for relative address to root ["hornetq-server" => "*","remote-connector" => "*"]:

Different 'expressions-allowed' for parameter 'param' of operation 'add'. Current: true; legacy: false