You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2015/03/18 09:11:08 UTC
[2/2] karaf-decanter git commit: Adding config admin support
Adding config admin support
Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/8b9fd648
Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/8b9fd648
Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/8b9fd648
Branch: refs/heads/master
Commit: 8b9fd64844dc08b0f6e12f9a5aa499644bbaa48d
Parents: fde7be5 f19041a
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Mon Mar 16 17:19:35 2015 +0100
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Mon Mar 16 17:19:35 2015 +0100
----------------------------------------------------------------------
appender/elasticsearch/pom.xml | 21 +++++++++-
...he.karaf.decanter.appender.elasticsearch.cfg | 2 +
.../appender/elasticsearch/Activator.java | 44 +++++++++++++++++---
assembly/src/main/feature/feature.xml | 1 +
4 files changed, 61 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/8b9fd648/appender/elasticsearch/pom.xml
----------------------------------------------------------------------
diff --cc appender/elasticsearch/pom.xml
index 9cf873f,7fb4ee8..26732e9
--- a/appender/elasticsearch/pom.xml
+++ b/appender/elasticsearch/pom.xml
@@@ -45,43 -53,62 +45,62 @@@
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
</dependency>
-
- <!-- JSON builder -->
- <dependency>
- <groupId>javax.json</groupId>
- <artifactId>javax.json-api</artifactId>
- </dependency>
- <!-- SLF4J -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
+ <!-- JSON builder -->
+ <dependency>
+ <groupId>javax.json</groupId>
+ <artifactId>javax.json-api</artifactId>
+ </dependency>
+ <!-- SLF4J -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
- </dependencies>
+ </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <inherited>true</inherited>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
- <Bundle-Version>${project.version}</Bundle-Version>
- <Bundle-Activator>org.apache.karaf.decanter.appender.elasticsearch.Activator</Bundle-Activator>
- <Import-Package>
- org.apache.karaf.decanter.api;version=${project.version},
- org.slf4j;version="[1.7,2)";resolution:=optional,
- org.elasticsearch*;version="[1,2)",
- *
- </Import-Package>
- </instructions>
- </configuration>
- </plugin>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <inherited>true</inherited>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+ <Bundle-Version>${project.version}</Bundle-Version>
+ <Bundle-Activator>org.apache.karaf.decanter.appender.elasticsearch.Activator</Bundle-Activator>
+ <Import-Package>
+ org.apache.karaf.decanter.api;version=${project.version},
+ org.slf4j;version="[1.7,2)";resolution:=optional,
+ org.elasticsearch*;version="[1,2)",
+ *
+ </Import-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>src/main/cfg/org.apache.karaf.decanter.appender.elasticsearch.cfg</file>
+ <type>cfg</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
- </plugins>
- </build>
+ </plugins>
+ </build>
</project>
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/8b9fd648/appender/elasticsearch/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/Activator.java
----------------------------------------------------------------------
diff --cc appender/elasticsearch/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/Activator.java
index 553d778,0aad636..05a6971
--- a/appender/elasticsearch/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/Activator.java
+++ b/appender/elasticsearch/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/Activator.java
@@@ -19,10 -19,13 +19,14 @@@ package org.apache.karaf.decanter.appen
import java.util.Dictionary;
import java.util.Hashtable;
-import org.apache.karaf.decanter.api.Appender;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
+import org.osgi.service.event.EventConstants;
+import org.osgi.service.event.EventHandler;
+ import org.osgi.framework.Constants;
+ import org.osgi.framework.ServiceRegistration;
+ import org.osgi.service.cm.ConfigurationException;
+ import org.osgi.service.cm.ManagedService;
public class Activator implements BundleActivator {
@@@ -38,7 -41,34 +42,35 @@@
}
public void stop(BundleContext bundleContext) {
+ appender.close();
+ if (appender != null) {
+ appender.close();
+ }
}
+ private final class ConfigUpdater implements ManagedService {
+ private BundleContext bundleContext;
+ private ServiceRegistration<?> serviceReg;
+
+ public ConfigUpdater(BundleContext bundleContext) {
+ this.bundleContext = bundleContext;
+ }
+
+ @SuppressWarnings("rawtypes")
+ @Override
+ public void updated(Dictionary config) throws ConfigurationException {
+ if (appender != null) {
+ appender.close();
+ serviceReg.unregister();
+ }
+
+ String host = config != null ? (String)config.get("host") : "localhost";
+ int port = config != null ? Integer.parseInt((String)config.get("port")) : 9300;
+ appender = new ElasticsearchAppender(host, port);
+ appender.open();
+ Dictionary<String, String> properties = new Hashtable<>();
- properties.put("name", "elasticsearch");
- serviceReg = bundleContext.registerService(Appender.class, appender, properties);
++ properties.put(EventConstants.EVENT_TOPIC, "decanter/*");
++ serviceReg = bundleContext.registerService(EventHandler.class, appender, properties);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/8b9fd648/assembly/src/main/feature/feature.xml
----------------------------------------------------------------------