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
----------------------------------------------------------------------