Hi Ivan,
You should check if the ServletFacet is installed before adding ServletSetupWizard to the
NavigationResultBuilder
Best Regards,
George Gastaldi<div>
</div><div>
</div><div>-------- Mensagem original --------</div><div>De:
"Ivan St. Ivanov" <ivan.st.ivanov(a)gmail.com> </div><div>Data:
03/07/2015 17:32 (GMT-03:00) </div><div>Para: forge-dev List
<forge-dev(a)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:
@Override
public NavigationResult getPrerequisiteCommands(UIContext context) {
NavigationResultBuilder builder = NavigationResultBuilder.create();
builder.add(ServletSetupWizard.class);
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
command?
Cheers,
Ivan
On Fri, Jul 3, 2015 at 5:23 PM, George Gastaldi <ggastald(a)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@lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/forge-dev
_______________________________________________
forge-dev mailing list
forge-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev
_______________________________________________
forge-dev mailing list
forge-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev