[wildfly-dev] AddStepHandler can't add content to overlay
Stan Silvert
ssilvert at redhat.com
Mon Oct 13 16:26:57 EDT 2014
On 10/13/2014 4:20 PM, Stuart Douglas wrote:
> Can you elaborate on why you need this?
>
> In your previous thread you mentioned user provided content and I
> suggested that they could use overlays, however this would require the
> user to install the overlays rather than the subystem.
>
> Looking at your example it looks like you are adding
> keycloak-server.json as an overlay, and I can't help but wonder why?
>
> I would guess that you are doing this to allow a deployment to read a
> file that is external to the deployment to be read from the class
> loader? If that is the case then I think there are better ways you can
> approach this (e.g. adding a resource loader to the module that can
> access this file).
The file will usually be a jar containing a service.
Can you elaborate on adding a resource loader to the module?
>
> Stuart
>
> Brian Stansberry wrote:
>> There's no way now to make sure it runs after.
>>
>> But the fact it assumes that overlay is present in the first place
>> sounds fishy. How do you know it exists?
>>
>> On 10/13/14, 1:30 PM, Stan Silvert wrote:
>>> I have an AddStepHandler that adds a keycloak server to the management
>>> model using the "Mixed Approach"[1]. It also needs to add overlay
>>> content if any new content is available. The overlay itself already
>>> exists in standalone.xml.
>>> <deployment-overlays>
>>> <deployment-overlay
>>> name="main-auth-server.war-keycloak-overlay">
>>> <deployment name="main-auth-server.war"/>
>>> </deployment-overlay>
>>> </deployment-overlays>
>>>
>>> I insert this operation in my AddStepHandler:
>>> {
>>> "operation" => "add",
>>> "address" => [
>>> ("deployment-overlay" =>
>>> "main-auth-server.war-keycloak-overlay"),
>>> ("content" =>
>>> "/WEB-INF/classes/META-INF/keycloak-server.json")
>>> ],
>>> "content" => {"url" => "file:/mydir/keycloak-server.json"},
>>> "rollback-on-runtime-failure" => false
>>> }
>>>
>>> But at this point in server startup, the overlay's add handler hasn't
>>> bee called. So I get
>>> 14:09:20,729 ERROR [org.jboss.as.controller.management-operation]
>>> (ServerService Thread Pool -- 26) JBAS014613: Operation ("add")
>>> failed -
>>> address: ([
>>> ("deployment-overlay" =>
>>> "main-auth-server.war-keycloak-overlay"),
>>> ("content" => "/WEB-INF/classes/META-INF/keycloak-server.json")
>>> ]) - failure description: "JBAS014766: Resource
>>> [(\"deployment-overlay\"
>>> => \"main-auth-server.war-keycloak-overlay\")] does not exist; a
>>> resource at address [
>>> (\"deployment-overlay\" =>
>>> \"main-auth-server.war-keycloak-overlay\"),
>>> (\"content\" =>
>>> \"/WEB-INF/classes/META-INF/keycloak-server.json\")
>>> ] cannot be created until all ancestor resources have been added"
>>>
>>> At startup, how can I make sure that my "add overlay content" operation
>>> is executed after "add overlay" is done?
>>>
>>> [1] https://developer.jboss.org/wiki/ExtendingAS7
>>
>>
More information about the wildfly-dev
mailing list