/** {@inheritDoc} */ @Override protected DslExpressionDefinition handle(final List<?> parsing) { String preExpression = (String) parsing.get(0); String postExpression = (String) parsing.get(4); final Option<DslFieldDefinition> field; final Option<DslMultiFieldDefinition> multiField; final Choice fields = (Choice) parsing.get(1); switch (fields.getValue()) { case 0: field = Option.some((DslFieldDefinition) fields.getResult()); multiField = Option.none(); break; case 1: final List<?> multiFieldParsing = (List<?>) fields.getResult(); preExpression = DslUtil.concat(preExpression, (String) multiFieldParsing.get(0)); multiField = Option.some((DslMultiFieldDefinition) multiFieldParsing.get(1)); postExpression = DslUtil.concat((String) multiFieldParsing.get(2), postExpression); field = Option.none(); break; default: throw new IllegalArgumentException("case " + fields.getValue() + " not implemented"); } final Choice queries = (Choice) parsing.get(3); final DslQueryDefinition query = (DslQueryDefinition) queries.getResult(); return new DslExpressionDefinition(preExpression, field, multiField, query, postExpression); }
/** * Lance l'environnement et attend indéfiniment. * * @param args "Usage: java kasper.kernel.Starter managers.xml <conf.properties>" */ public static void main(final String[] args) { final String usageMsg = "Usage: java io.analytica.spies.impl.logs.LogSpyStandaloneParser \"http://analyticaServer:port/analytica/rest/process\" confPattern.json logFile.out"; Assertion.checkArgument( args.length == 3, usageMsg + " (nombre d'arguments incorrect : " + args.length + ")"); Assertion.checkArgument(args[0].contains("http://"), usageMsg + " (" + args[0] + ")"); Assertion.checkArgument(args[1].endsWith(".json"), usageMsg + " (" + args[1] + ")"); // --------------------------------------------------------------------- final String managersXmlFileName = "./managers.xml"; final Option<String> propertiesFileName = args.length == 2 ? Option.<String>some(args[1]) : Option.<String>none(); final Properties defaultProperties = new Properties(); defaultProperties.setProperty("serverUrl", args[0]); defaultProperties.setProperty("confFileUrl", args[1]); defaultProperties.setProperty("logFileUrl", args[2]); final Starter starter = new Starter( managersXmlFileName, propertiesFileName, LogSpyStandaloneParser.class, Option.some(defaultProperties), 0); starter.start(); try { // final Container container = new DualContainer(Home.getComponentSpace(), new // ParamsContainer((Map) defaultProperties)); final AgentManager agentManager = Home.getComponentSpace().resolve(AgentManager.class); final ResourceManager resourceManager = Home.getComponentSpace().resolve(ResourceManager.class); final String logFileUrl = defaultProperties.getProperty("logFileUrl"); final String confFileUrl = defaultProperties.getProperty("confFileUrl"); final LogSpyReader logSpyReader = new LogSpyReader(agentManager, resourceManager, logFileUrl, confFileUrl); // INJECTOR.newInstance(LogSpyReader.class, Home.getComponentSpace()); try { logSpyReader.start(); } finally { flushAgentToServer(); } } finally { starter.stop(); } }
/** {@inheritDoc} */ @Override public Option<Definition> createDefinition(final DynamicDefinition xdefinition) { final Entity entity = xdefinition.getEntity(); if (entity.equals(PublisherGrammar.publisherDefinition)) { final Definition definition = createPublisherDataDefinition(xdefinition); return Option.some(definition); } else if (entity.equals(PublisherGrammar.publisherNodeDefinition)) { createPublisherNodeDefinition(xdefinition); return Option.none(); } else { throw new IllegalArgumentException("Type de définition non gérée: " + xdefinition.getName()); } }