{"action":"created","issue":{"url":"https://api.github.com/repos/wildfly/wildfly/issues/7407","labels_url":"https://api.github.com/repos/wildfly/wildfly/issues/7407/labels{/name}","comments_url":"https://api.github.com/repos/wildfly/wildfly/issues/7407/comments","events_url":"https://api.github.com/repos/wildfly/wildfly/issues/7407/events","html_url":"https://github.com/wildfly/wildfly/pull/7407","id":73071848,"number":7407,"title":"WFLY-4452 Use Flag.RESTART_RESOURCE_SERVICES for child resources of cache","user":{"login":"pferraro","id":352192,"avatar_url":"https://avatars.githubusercontent.com/u/352192?v=3","gravatar_id":"","url":"https://api.github.com/users/pferraro","html_url":"https://github.com/pferraro","followers_url":"https://api.github.com/users/pferraro/followers","following_url":"https://api.github.com/users/pferraro/following{/other_user}","gists_url":"https://api.github.com/users/pferraro/gists{/gist_id}","starred_url":"https://api.github.com/users/pferraro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pferraro/subscriptions","organizations_url":"https://api.github.com/users/pferraro/orgs","repos_url":"https://api.github.com/users/pferraro/repos","events_url":"https://api.github.com/users/pferraro/events{/privacy}","received_events_url":"https://api.github.com/users/pferraro/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/wildfly/wildfly/labels/10.x","name":"10.x","color":"bfe5bf"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":30,"created_at":"2015-05-04T17:02:39Z","updated_at":"2015-05-12T02:57:55Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/wildfly/wildfly/pulls/7407","html_url":"https://github.com/wildfly/wildfly/pull/7407","diff_url":"https://github.com/wildfly/wildfly/pull/7407.diff","patch_url":"https://github.com/wildfly/wildfly/pull/7407.patch"},"body":"https://issues.jboss.org/browse/WFLY-4575\r\n\r\nMost resource attributes in the Infinispan subsystem use Flag.RESTART_ALL_SERVICES.  This is overly coarse/intrusive.  Changing any attribute of a cache configuration should only require the restart of a  minimal set of services.  This PR does just that.\r\nTo do this, every child resource of a cache installs a service which encompasses its configuration.  The cache resource need only depend on the requisite child configuration components for that cache type.  This means that the child resources of a cache are no longer just blocks of configuration, but now create fine-grained services.\r\nI've made a number of tangential changes to the Infinispan subsystem, including:\r\n* Eliminate loading of cache configuration defaults from an external a file.  Because all components of a cache configuration are required, we no longer have a need for this (i.e. infinispan-defaults.xml).  All defaults are explicitly determined by the model.\r\n* Use better path names for cache and cache container components, e.g. /local-cache=test/component=transaction instead of /local-cache=test/transaction=TRANSACTION.  Paths are transformed to legacy path to support mixed domains. Added resource aliases for legacy paths.\r\n* Use better path names for cache stores, e.g. /local-cache=test/store=file instead of /local-cache=test/file-store=FILE_STORE. Paths are transformed to legacy path to support mixed domains. Added resource aliases for legacy paths.\r\n* Refactor indexing related cache attributes into an Indexing child resource, including requisite transformers.\r\n* Refactor string-table/binary-table properties of jdbc cache stores into child resources, including requisite transformers.  This simplifies the corresponding jdbc store management operations significantly. e.g. /local-cache=test/store=mixed-jdbc/table=binary\r\n* Enumerated resource attributes.  This allows us to more easily operate on all attributes of a resource, and allows us to more easily do clever things with generic resource handlers.  This also minimizes the work required to add a new attribute to a resource.\r\n* Enhanced generic resource description resolver that looks for the description of a given key from a set of prefixes.  This prevents the need to duplicate descriptions when using resource hierarchies.\r\n\r\nTo facilitate this change, I've introduced a number of controller abstractions that reduce the amount of boilerplate code required to instrument a resource:\r\n* ResourceServiceBuilder<T>, an extension of org.wildfly.clustering.service.Builder<T> that allows the builder to configure itself via a resource model.\r\n* ResourceServiceHandler, an abstraction that encapsulates logic for installing and removing services for a resource\r\n* A simple ResourceServiceHandler implementation that installs/removes a single service via a ResourceServiceBuilder<T> factory\r\n* Generic resource add/remove operation handlers that delegate to a ResourceServiceHandler\r\n* Generic RestartParent*Handlers that delegate to a ResourceServiceBuilder factory."},"comment":{"url":"https://api.github.com/repos/wildfly/wildfly/issues/comments/101110732","html_url":"https://github.com/wildfly/wildfly/pull/7407#issuecomment-101110732","issue_url":"https://api.github.com/repos/wildfly/wildfly/issues/7407","id":101110732,"user":{"login":"wildfly-ci","id":939955,"avatar_url":"https://avatars.githubusercontent.com/u/939955?v=3","gravatar_id":"","url":"https://api.github.com/users/wildfly-ci","html_url":"https://github.com/wildfly-ci","followers_url":"https://api.github.com/users/wildfly-ci/followers","following_url":"https://api.github.com/users/wildfly-ci/following{/other_user}","gists_url":"https://api.github.com/users/wildfly-ci/gists{/gist_id}","starred_url":"https://api.github.com/users/wildfly-ci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wildfly-ci/subscriptions","organizations_url":"https://api.github.com/users/wildfly-ci/orgs","repos_url":"https://api.github.com/users/wildfly-ci/repos","events_url":"https://api.github.com/users/wildfly-ci/events{/privacy}","received_events_url":"https://api.github.com/users/wildfly-ci/received_events","type":"User","site_admin":false},"created_at":"2015-05-12T02:57:55Z","updated_at":"2015-05-12T02:57:55Z","body":"**Linux with security manager** [Build 1357](http://brontes.lab.eng.brq.redhat.com/viewLog.html?buildId=52939&buildTypeId=WF_PullRequest_LinuxSm) outcome was **FAILURE** using a merge of 36d36926f5fc2c09cad9faa9c1470667552b2386\nSummary: Tests failed: 3, passed: 823, ignored: 318 Build time: 0:06:05\n### Build problems:\nFailed tests detected\n\n### Failed tests\n```\norg.jboss.as.test.integration.web.jsp.taglib.external.ExternalTagLibTestCase.testExternalTagLibOnly: <no details avaliable>\n\norg.jboss.as.test.integration.web.jsp.taglib.external.ExternalTagLibTestCase.testExternalAndInternalTagLib: <no details avaliable>\n\norg.jboss.as.test.integration.jsp.JspTagTestCase.test: <no details avaliable>\n\n```\n"}}