@Override public DependencyProvider provider() { return DependencyProvider.from(); } }
/** * @param objs a set of dependencies * @return a new provider with the dependencies provided */ public static DependencyProvider from(Object... objs) { DependencyProvider provider = new DependencyProvider(); for (Object o : objs) { provider.add(o); } return provider; }
protected Object[] injectParameters(ChannelHandlerContext ctx, Object msg, Object[] params, Object instance, DependencyProvider deps) { //inject method dependencies return Injector.inject(classMethod.getParameterTypes(), params, deps); }
/** * Invoke this method using the parameters provided * * @param ctx channel context * @param path method path extracted from incoming request * @param msg the original message * @param params parameters extracted from message * @param provider */ public Object invoke(ChannelHandlerContext ctx, String path, Object msg, Object[] params, DependencyProvider provider) throws InvocationTargetException, IllegalAccessException, InstantiationException { Object instance = createInstance(); DependencyProvider deps = provider == null ? DependencyProvider.from() : provider; deps.add(ctx, ctx.channel(), ctx.executor(), msg); Injector.inject(instance, deps); Object[] depParams = injectParameters(ctx, msg, params, instance, deps); if (instance instanceof EventListenerMethod) { ((EventListenerMethod) instance).init(); } return classMethod.invoke(instance, depParams); }
public StaticFileTransformer() { //inject HttpConfig Injector.inject(this, DependencyProvider.global()); conf = ConfigUtil.loadYaml("static_file_config.yml", FilesConfig.class); base = Paths.get(config.public_directory); // should delete file DiskFileUpload.deleteOnExitTemporaryFile = conf.delete_temp_on_exit; // system temp directory DiskFileUpload.baseDirectory = conf.temp_directory; // should delete file on DiskAttribute.deleteOnExitTemporaryFile = conf.delete_temp_on_exit; // exit (in normal exit) DiskAttribute.baseDirectory = conf.temp_directory; //htm,html -> text/html, json -> application/json, xml -> application/xml Map<String, String> textFormats = conf.custom_mime_types; //map multiple extensions to the same content type for (String commaSeparatedExtensions : textFormats.keySet()) { String[] extensions = commaSeparatedExtensions.split(","); String contentType = textFormats.get(commaSeparatedExtensions); for (String extension : extensions) { formats.put(extension, contentType); } } setPriority(conf.priority); //after JSON }
public <C extends ServerConfig> HiggsServer setConfig(String configFile, Class<C> klass, Constructor constructor) { if (configFile == null || configFile.isEmpty()) { configFile = "config.yml"; } config = ConfigUtil.loadYaml(Paths.get(configFile), klass, constructor); this.port = config.port; DependencyProvider.global().add(config); return this; }
public HandlebarsTransformer() { config = ConfigUtil.loadYaml("handlebars_config.yml", HandlebarsConfig.class); setPriority(config.priority); addSupportedTypes(WILDCARD_TYPE, TEXT_HTML_TYPE, APPLICATION_FORM_URLENCODED_TYPE, APPLICATION_XHTML_XML_TYPE); if (DependencyProvider.global().get(HANDLE_BARS) == null) { DependencyProvider.global().put(HANDLE_BARS, new HashMap<String, Object>()); } loader = new HiggsTemplateLoader(config); handlebars = new Handlebars(loader); loadHelpers(); if (config.enable_humanize_helper) { HumanizeHelper.register(handlebars); } if (config.enable_jackson_helper) { handlebars.registerHelper("json", Jackson2Helper.INSTANCE); } if (config.enable_markdown_helper) { handlebars.registerHelper("md", MarkdownHelper.INSTANCE); } if (config.cache_templates) { handlebars.with(new HighConcurrencyTemplateCache()); } }
private Context scopes(Object response, HttpRequest request, HttpMethod method) { Context ctx = Context.newBuilder(response) .resolver( JavaBeanValueResolver.INSTANCE, MapValueResolver.INSTANCE, FieldValueResolver.INSTANCE, MethodValueResolver.INSTANCE ).build(); //${_query} ,${_form},${_files},${_session},${_cookies},${_request},${_response},${_server} Map<String, ?> anything = DependencyProvider.global().get(HANDLE_BARS); ctx.data("_query", request.getQueryParams()) .data("_form", request.getFormParam()) .data("_files", request.getFormFiles()) .data("_subject", request.getSubject()) .data("_session", request.getSubject().getSession()) .data("_cookies", request.getCookies()) .data("_request", request) .data("_response", response) //add anything the user sets .data(anything); if (method != null) { ctx.data("_validation", method.getValidationResult()); } return ctx; }
added = assignParam(expectedClass, p, i, param); if (local.has(expectedClass)) { param = local.get(expectedClass); p[i] = param; if (provider.has(expectedClass)) { param = provider.get(expectedClass); p[i] = param; break;
@Override public void finished(ChannelHandlerContext ctx) { byte[] bytes = new byte[content.readableBytes()]; content.readBytes(bytes); String json = new String(bytes, Charset.forName(UTF8)); JsonNode node; try { node = mapper.readValue(json, JsonNode.class); } catch (IOException e) { throw new WebApplicationException(HttpResponseStatus.BAD_REQUEST.code()); } provider.add(new JsonData(json, node)); }
/** * Invoke this method using the parameters provided * * @param ctx channel context * @param path method path extracted from incoming request * @param msg the original message * @param params parameters extracted from message * @param provider */ public Object invoke(ChannelHandlerContext ctx, String path, Object msg, Object[] params, DependencyProvider provider) throws InvocationTargetException, IllegalAccessException, InstantiationException { Object instance = createInstance(); DependencyProvider deps = provider == null ? DependencyProvider.from() : provider; deps.add(ctx, ctx.channel(), ctx.executor(), msg); Injector.inject(instance, deps); Object[] depParams = injectParameters(ctx, msg, params, instance, deps); if (instance instanceof EventListenerMethod) { ((EventListenerMethod) instance).init(); } return classMethod.invoke(instance, depParams); }
public StaticFileTransformer() { //inject HttpConfig Injector.inject(this, DependencyProvider.global()); conf = ConfigUtil.loadYaml("static_file_config.yml", FilesConfig.class); base = Paths.get(config.public_directory); // should delete file DiskFileUpload.deleteOnExitTemporaryFile = conf.delete_temp_on_exit; // system temp directory DiskFileUpload.baseDirectory = conf.temp_directory; // should delete file on DiskAttribute.deleteOnExitTemporaryFile = conf.delete_temp_on_exit; // exit (in normal exit) DiskAttribute.baseDirectory = conf.temp_directory; //htm,html -> text/html, json -> application/json, xml -> application/xml Map<String, String> textFormats = conf.custom_mime_types; //map multiple extensions to the same content type for (String commaSeparatedExtensions : textFormats.keySet()) { String[] extensions = commaSeparatedExtensions.split(","); String contentType = textFormats.get(commaSeparatedExtensions); for (String extension : extensions) { formats.put(extension, contentType); } } setPriority(conf.priority); //after JSON }
public <C extends ServerConfig> HiggsServer setConfig(String configFile, Class<C> klass, Constructor constructor) { if (configFile == null || configFile.isEmpty()) { configFile = "config.yml"; } config = ConfigUtil.loadYaml(Paths.get(configFile), klass, constructor); this.port = config.port; DependencyProvider.global().add(config); return this; }
@Override public void channelRead0(ChannelHandlerContext ctx, EventMessage msg) throws Exception { int matches = 0; for (InvokableMethod method : methods) { if (method.matches(msg.name(), ctx, msg)) { Object response = method.invoke(ctx, msg.name(), msg, msg.params(), DependencyProvider.from()); if (response instanceof TypeMismatch) { continue; } matches++; } } if (matches == 0) { log.debug(String.format("Event received but no subscribers found (%s)", msg)); } } }
added = assignParam(expectedClass, p, i, param); if (local.has(expectedClass)) { param = local.get(expectedClass); p[i] = param; if (provider.has(expectedClass)) { param = provider.get(expectedClass); p[i] = param; break;
/** * @param objs a set of dependencies * @return a new provider with the dependencies provided */ public static DependencyProvider from(Object... objs) { DependencyProvider provider = new DependencyProvider(); for (Object o : objs) { provider.add(o); } return provider; }
protected Object[] injectParameters(ChannelHandlerContext ctx, Object msg, Object[] params, Object instance, DependencyProvider deps) { //inject method dependencies return Injector.inject(classMethod.getParameterTypes(), params, deps); }
@Override public void channelRead0(ChannelHandlerContext ctx, EventMessage msg) throws Exception { int matches = 0; for (InvokableMethod method : methods) { if (method.matches(msg.name(), ctx, msg)) { Object response = method.invoke(ctx, msg.name(), msg, msg.params(), DependencyProvider.from()); if (response instanceof TypeMismatch) { continue; } matches++; } } if (matches == 0) { log.debug(String.format("Event received but no subscribers found (%s)", msg)); } } }