class GetHeaderFromRequestRulePlugin implements IPlugin {

    @Override
    public void load() throws PluginException {
        try {
            IBootstrapItem<String> item = new BootstrapItem("GetHeaderFromRequestRulePlugin");

            item
//                .after("IOC")
//                .after("wds_object")
//                .before("starter")
                    .process(() -> {
                        try {
                            //call IOC.resolve for put GetHeaderFromRequestRule into cache of ResolveByNameDependency strategy
                            IOC.resolve(
                                Keys.getOrAdd(IResolveDependencyStrategy.class.getCanonicalName()),
                                "getHeaderFromRequestRule",
                                new GetHeaderFromRequestRule()
                            );
                        } catch (ResolutionException e) {
                            throw new ActionExecuteException(
                                "GetHeaderFromRequestRule plugin can't load: can't get GetHeaderFromRequestRule key", e
                            );
                        }
                    });
            bootstrap.add(item);
        } catch (InvalidArgumentException e) {
            throw new PluginException("Can't load GetHeaderFromRequestRule plugin", e);
        }
    }

    public  GetHeaderFromRequestRulePlugin(final IBootstrap<IBootstrapItem<String>> bootstrap);

}