TAMAYA-145: Added meta logging feature.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/commit/31b9c0e1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/tree/31b9c0e1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/diff/31b9c0e1 Branch: refs/heads/master Commit: 31b9c0e1db95143e67dc945f25694f676d8cb00c Parents: 1fec344 Author: anatole <[email protected]> Authored: Mon Aug 7 17:33:38 2017 +0200 Committer: anatole <[email protected]> Committed: Mon Aug 7 17:33:38 2017 +0200 ---------------------------------------------------------------------- .../internal/resolver/LoggingReader.java | 79 ++++++++++++++++++++ ...tamaya.metamodel.spi.MetaConfigurationReader | 19 +++++ 2 files changed, 98 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/31b9c0e1/metamodel/src/test/java/org/apache/tamaya/metamodel/internal/resolver/LoggingReader.java ---------------------------------------------------------------------- diff --git a/metamodel/src/test/java/org/apache/tamaya/metamodel/internal/resolver/LoggingReader.java b/metamodel/src/test/java/org/apache/tamaya/metamodel/internal/resolver/LoggingReader.java new file mode 100644 index 0000000..c0d67bc --- /dev/null +++ b/metamodel/src/test/java/org/apache/tamaya/metamodel/internal/resolver/LoggingReader.java @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tamaya.metamodel.internal.resolver; + +import org.apache.tamaya.Configuration; +import org.apache.tamaya.ConfigurationProvider; +import org.apache.tamaya.metamodel.MetaContext; +import org.apache.tamaya.metamodel.spi.MetaConfigurationReader; +import org.apache.tamaya.spi.ConfigurationContext; +import org.apache.tamaya.spi.ConfigurationContextBuilder; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.StringReader; +import java.util.HashMap; +import java.util.Map; +import java.util.Timer; +import java.util.TimerTask; + +/** + * Created by atsticks on 01.05.17. + */ +public class LoggingReader implements MetaConfigurationReader{ + + private static final JavaResolver resolver = new JavaResolver(); + + @Override + public void read(final Document document, ConfigurationContextBuilder contextBuilder) { + new Timer(true).schedule(new TimerTask() { + @Override + public void run() { + Map<String, Object> meta = new HashMap<>(); + meta.put("context", ConfigurationProvider.getConfiguration().getContext()); + meta.put("config", ConfigurationProvider.getConfiguration()); + NodeList nodeList = document.getDocumentElement().getElementsByTagName("context"); + for(int i=0;i<nodeList.getLength();i++){ + Node node = nodeList.item(i); + if(node.getNodeName().equals("log")){ + String expression = node.getTextContent(); + BufferedReader reader = new BufferedReader(new StringReader(expression)); + String line = null; + try { + line = reader.readLine(); + while(line!=null){ + Object res = resolver.evaluate(line); + if(res!=null) { + System.out.println(res); + } + line = reader.readLine(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + }, 10000L); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/31b9c0e1/metamodel/src/test/resources/META-INF/services/org.apache.tamaya.metamodel.spi.MetaConfigurationReader ---------------------------------------------------------------------- diff --git a/metamodel/src/test/resources/META-INF/services/org.apache.tamaya.metamodel.spi.MetaConfigurationReader b/metamodel/src/test/resources/META-INF/services/org.apache.tamaya.metamodel.spi.MetaConfigurationReader new file mode 100644 index 0000000..ace072c --- /dev/null +++ b/metamodel/src/test/resources/META-INF/services/org.apache.tamaya.metamodel.spi.MetaConfigurationReader @@ -0,0 +1,19 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +org.apache.tamaya.metamodel.internal.resolver.LoggingReader \ No newline at end of file
