[forge-dev] Interesting behavior of CommandController (bug or feature ; ))

George Gastaldi ggastald at redhat.com
Fri Jul 3 18:19:49 EDT 2015

Hi Ivan,
You should check if the ServletFacet is installed before adding ServletSetupWizard to the NavigationResultBuilder
Best Regards,
George Gastaldi<div>
</div><div>-------- Mensagem original --------</div><div>De: "Ivan St. Ivanov" <ivan.st.ivanov at gmail.com> </div><div>Data: 03/07/2015  17:32  (GMT-03:00) </div><div>Para: forge-dev List <forge-dev at lists.jboss.org> </div><div>Assunto: Re: [forge-dev] Interesting behavior of CommandController (bug or feature ; )) </div><div>
</div>Hey George,

Thanks for your answer! :)

Well, maybe I am mismatching two concepts. So, my command that
implements PrerequisiteCommandsProvider
does this:

    public NavigationResult getPrerequisiteCommands(UIContext context) {
        NavigationResultBuilder builder = NavigationResultBuilder.create();


        return builder.build();

Then, just before I execute the command controller thing, I install the
Servlet facet for the corresponding Servlet version.

But most probably installing a facet does not disable the prerequisite


On Fri, Jul 3, 2015 at 5:23 PM, George Gastaldi <ggastald at redhat.com> wrote:

>  Hi Ivan,
> Glad you decided to resume your work on the servlet security addon.
> When your command use a PreRequisiteCommandProvider, the initial step
> might not be your command in question, but the commands to be executed
> before that. That's why your setValueFor method might fail.
> What are the inputs returned in your test after you call initialize()
> (commandController.getInputs()) ?
> Best Regards,
> George Gastaldi
> On 07/03/2015 09:36 AM, Ivan St. Ivanov wrote:
> Hi everybody,
>  Believe it or not, but I resumed my work on the Servlet Security addon
> for Forge (https://issues.jboss.org/browse/FORGEPLUGINS-152) :)
>  And I found something that I don't know whether is a bug or a feature.
> If my Command class implements the PrerequisiteCommandsProvider and if I
> try to use the CommandController in my integration test, then I have a
> problem. Here is a sample code:
>  try (CommandController commandController = testHarness
>                .createCommandController(SecuritySetupCommand.class,
> project.getRoot()))
>       {
>          commandController.initialize();
>          commandController.setValueFor("securityRealm", realm);
>          commandController.setValueFor("authMethod", authenticationMethod);
>          commandController.execute();
>       }
>  This code fails at the setValueFor method simply because the UI was not
> initialized in the initialize method above it and there are no such inputs
> like securityRealm and authMethod.
>  I did some debugging and found that if SecuritySetupCommand implements
> the PrerequisiteCommandsProvider interface, the
> commandController.initialize() method does not
> call PrerequisiteCommandsProvider#initializeUI method. Instead it
> triggeres PrerequisiteCommandTransformer.DelegateWizard#initializeUI. Which
> is empty and does nothing. And that's the reason why there are no
> securityRealm and authMethod controls.
>  I guess that it is caused by some CDI "magic"? So I wonder is it a bug
> or a feature? Can I use CommandController to test commands that implement
> PrerequisiteCommandsProvider?
>  Thanks,
> Ivan
> _______________________________________________
> forge-dev mailing listforge-dev at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/forge-dev
> _______________________________________________
> forge-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20150703/ca755bb7/attachment.html 
-------------- next part --------------
forge-dev mailing list
forge-dev at lists.jboss.org

More information about the forge-dev mailing list