You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2012/11/02 09:53:00 UTC
svn commit: r1404894 - in /karaf/cellar/branches/cellar-2.2.x:
assembly/src/main/resources/
bundle/src/main/java/org/apache/karaf/cellar/bundle/
config/src/main/java/org/apache/karaf/cellar/config/
core/src/main/java/org/apache/karaf/cellar/core/ core/...
Author: jbonofre
Date: Fri Nov 2 08:52:59 2012
New Revision: 1404894
URL: http://svn.apache.org/viewvc?rev=1404894&view=rev
Log:
[KARAF-1414] Add persistence for event handlers
Modified:
karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/node.cfg
karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleEventHandler.java
karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationEventHandler.java
karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/Configurations.java
karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ConsumerSwitchCommandHandler.java
karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ManageHandlersCommandHandler.java
karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java
karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/resources/OSGI-INF/blueprint/blueprint.xml
karaf/cellar/branches/cellar-2.2.x/event/src/main/java/org/apache/karaf/cellar/event/RemoteEventHandler.java
karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueConsumer.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueProducer.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/TopicConsumer.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/TopicProducer.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEventHandler.java
Modified: karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/node.cfg
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/node.cfg?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/node.cfg (original)
+++ karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/node.cfg Fri Nov 2 08:52:59 2012
@@ -1,3 +1,31 @@
+#
+# Default cluster group for this node
+#
groups = default
+
+#
+# Cluster event producer
+#
producer = true
-consumer = true
\ No newline at end of file
+
+#
+# Cluster event consumer
+#
+consumer = true
+
+#
+# Cluster event handlers
+#
+# bundle event handler
+handler.org.apache.karaf.cellar.bundle.BundleEventHandler = true
+# config event handler
+handler.org.apache.karaf.cellar.config.ConfigurationEventHandler = true
+# feature event handler
+handler.org.apache.karaf.cellar.features.FeaturesEventHandler = true
+# DOSGi event handler
+handler.org.apache.karaf.cellar.dosgi.RemoteServiceCallHandler = true
+# OSGi event handler
+handler.org.apache.karaf.cellar.event.RemoteEventHandler = true
+# OBR event handler
+handler.org.apache.karaf.cellar.obr.ObrBundleEventHandler = true
+handler.org.apache.karaf.cellar.obr.ObrUrlEventHandler = true
\ No newline at end of file
Modified: karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleEventHandler.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleEventHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleEventHandler.java Fri Nov 2 08:52:59 2012
@@ -13,6 +13,7 @@
*/
package org.apache.karaf.cellar.bundle;
+import org.apache.karaf.cellar.core.Configurations;
import org.apache.karaf.cellar.core.control.BasicSwitch;
import org.apache.karaf.cellar.core.control.Switch;
import org.apache.karaf.cellar.core.control.SwitchStatus;
@@ -20,6 +21,7 @@ import org.apache.karaf.cellar.core.even
import org.apache.karaf.cellar.core.event.EventType;
import org.osgi.framework.BundleEvent;
import org.osgi.framework.BundleException;
+import org.osgi.service.cm.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,7 +40,7 @@ public class BundleEventHandler extends
*/
public void handle(RemoteBundleEvent event) {
// check if the handler switch is ON
- if (eventSwitch.getStatus().equals(SwitchStatus.OFF)) {
+ if (this.getSwitch().getStatus().equals(SwitchStatus.OFF)) {
LOGGER.warn("CELLAR BUNDLE: {} switch is OFF, cluster event is not handled", SWITCH_ID);
return;
}
@@ -92,6 +94,20 @@ public class BundleEventHandler extends
}
public Switch getSwitch() {
+ // load the switch status from the config
+ try {
+ Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
+ if (configuration != null) {
+ Boolean status = new Boolean((String) configuration.getProperties().get(Configurations.HANDLER + "." + this.getClass().getName()));
+ if (status) {
+ eventSwitch.turnOn();
+ } else {
+ eventSwitch.turnOff();
+ }
+ }
+ } catch (Exception e) {
+ // ignore
+ }
return eventSwitch;
}
Modified: karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationEventHandler.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationEventHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationEventHandler.java Fri Nov 2 08:52:59 2012
@@ -45,7 +45,7 @@ public class ConfigurationEventHandler e
public void handle(RemoteConfigurationEvent event) {
// check if the handler is ON
- if (eventSwitch.getStatus().equals(SwitchStatus.OFF)) {
+ if (this.getSwitch().getStatus().equals(SwitchStatus.OFF)) {
LOGGER.warn("CELLAR CONFIG: {} switch is OFF, cluster event not handled", SWITCH_ID);
return;
}
@@ -108,6 +108,20 @@ public class ConfigurationEventHandler e
}
public Switch getSwitch() {
+ // load the switch status from the config
+ try {
+ Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
+ if (configuration != null) {
+ Boolean status = new Boolean((String) configuration.getProperties().get(Configurations.HANDLER + "." + this.getClass().getName()));
+ if (status) {
+ eventSwitch.turnOn();
+ } else {
+ eventSwitch.turnOff();
+ }
+ }
+ } catch (Exception e) {
+ // ignore
+ }
return eventSwitch;
}
Modified: karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/Configurations.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/Configurations.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/Configurations.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/Configurations.java Fri Nov 2 08:52:59 2012
@@ -24,6 +24,7 @@ public class Configurations {
public static final String NODE = "org.apache.karaf.cellar.node";
public static final String PRODUCER = "producer";
public static final String CONSUMER = "consumer";
+ public static final String HANDLER = "handler";
public static final String SEPARATOR = ".";
public static final String DELIMETER = ",";
Modified: karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ConsumerSwitchCommandHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ConsumerSwitchCommandHandler.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ConsumerSwitchCommandHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ConsumerSwitchCommandHandler.java Fri Nov 2 08:52:59 2012
@@ -72,7 +72,7 @@ public class ConsumerSwitchCommandHandle
}
}
} catch (Exception e) {
- LOGGER.warn("Can't persist the producer status", e);
+ LOGGER.warn("Can't persist the consumer status", e);
}
}
Modified: karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ManageHandlersCommandHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ManageHandlersCommandHandler.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ManageHandlersCommandHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ManageHandlersCommandHandler.java Fri Nov 2 08:52:59 2012
@@ -13,6 +13,7 @@
*/
package org.apache.karaf.cellar.core.control;
+import org.apache.karaf.cellar.core.Configurations;
import org.apache.karaf.cellar.core.Consumer;
import org.apache.karaf.cellar.core.command.CommandHandler;
import org.apache.karaf.cellar.core.event.EventHandler;
@@ -20,10 +21,12 @@ import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleReference;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
+import org.osgi.service.cm.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.swing.plaf.basic.BasicInternalFrameTitlePane;
+import java.util.Dictionary;
/**
* Manage handlers command handler.
@@ -63,8 +66,12 @@ public class ManageHandlersCommandHandle
if (command.getHandlerName().equals(handler.getClass().getName())) {
if (command.getStatus() != null) {
if (command.getStatus()) {
+ // persist the handler switch status to configuration admin
+ persist(handler.getClass().getName(), SwitchStatus.ON);
handler.getSwitch().turnOn();
} else {
+ // persist the handler switch status to configuration admin
+ persist(handler.getClass().getName(), SwitchStatus.OFF);
handler.getSwitch().turnOff();
}
}
@@ -86,6 +93,27 @@ public class ManageHandlersCommandHandle
return result;
}
+ /**
+ * Store the handler switch configuration in configuration admin.
+ *
+ * @param handler the handler to store
+ * @param switchStatus the switch status to store.
+ */
+ private void persist(String handler, SwitchStatus switchStatus) {
+ try {
+ Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
+ if (configuration != null) {
+ Dictionary<String, String> properties = configuration.getProperties();
+ if (properties != null) {
+ properties.put(Configurations.HANDLER + "." + handler, switchStatus.getValue().toString());
+ configuration.update(properties);
+ }
+ }
+ } catch (Exception e) {
+ LOGGER.warn("Can't persist the handler " + handler + " status", e);
+ }
+ }
+
@Override
public Class<ManageHandlersCommand> getType() {
return ManageHandlersCommand.class;
Modified: karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java Fri Nov 2 08:52:59 2012
@@ -14,14 +14,17 @@
package org.apache.karaf.cellar.dosgi;
import org.apache.karaf.cellar.core.CellarSupport;
+import org.apache.karaf.cellar.core.Configurations;
import org.apache.karaf.cellar.core.control.BasicSwitch;
import org.apache.karaf.cellar.core.control.Switch;
+import org.apache.karaf.cellar.core.control.SwitchStatus;
import org.apache.karaf.cellar.core.event.EventHandler;
import org.apache.karaf.cellar.core.event.EventProducer;
import org.apache.karaf.cellar.core.event.EventTransportFactory;
import org.osgi.framework.BundleContext;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
+import org.osgi.service.cm.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,6 +48,13 @@ public class RemoteServiceCallHandler ex
@Override
public void handle(RemoteServiceCall event) {
+
+ // check if the handler switch is ON
+ if (this.getSwitch().getStatus().equals(SwitchStatus.OFF)) {
+ LOGGER.warn("CELLAR DOSGI: {} switch is OFF, cluster event is not handled", SWITCH_ID);
+ return;
+ }
+
Object targetService = null;
if (event != null) {
@@ -108,6 +118,20 @@ public class RemoteServiceCallHandler ex
@Override
public Switch getSwitch() {
+ // load the switch status from the config
+ try {
+ Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
+ if (configuration != null) {
+ Boolean status = new Boolean((String) configuration.getProperties().get(Configurations.HANDLER + "." + this.getClass().getName()));
+ if (status) {
+ dosgiSwitch.turnOn();
+ } else {
+ dosgiSwitch.turnOff();
+ }
+ }
+ } catch (Exception e) {
+ // ignore
+ }
return dosgiSwitch;
}
Modified: karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/resources/OSGI-INF/blueprint/blueprint.xml
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/resources/OSGI-INF/blueprint/blueprint.xml?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/resources/OSGI-INF/blueprint/blueprint.xml (original)
+++ karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/resources/OSGI-INF/blueprint/blueprint.xml Fri Nov 2 08:52:59 2012
@@ -36,6 +36,7 @@
<property name="clusterManager" ref="clusterManager"/>
<property name="eventTransportFactory" ref="eventTransportFactory"/>
<property name="bundleContext" ref="blueprintBundleContext"/>
+ <property name="configurationAdmin" ref="configurationAdmin" />
</bean>
<service ref="remoteServiceCallHandler" interface="org.apache.karaf.cellar.core.event.EventHandler">
<service-properties>
@@ -53,5 +54,6 @@
<reference id="clusterManager" interface="org.apache.karaf.cellar.core.ClusterManager"/>
<reference id="eventTransportFactory" interface="org.apache.karaf.cellar.core.event.EventTransportFactory"/>
<reference id="commandStore" interface="org.apache.karaf.cellar.core.command.CommandStore"/>
+ <reference id="configurationAdmin" interface="org.osgi.service.cm.ConfigurationAdmin"/>
</blueprint>
Modified: karaf/cellar/branches/cellar-2.2.x/event/src/main/java/org/apache/karaf/cellar/event/RemoteEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/event/src/main/java/org/apache/karaf/cellar/event/RemoteEventHandler.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/event/src/main/java/org/apache/karaf/cellar/event/RemoteEventHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/event/src/main/java/org/apache/karaf/cellar/event/RemoteEventHandler.java Fri Nov 2 08:52:59 2012
@@ -13,13 +13,13 @@
*/
package org.apache.karaf.cellar.event;
-import org.apache.karaf.cellar.core.Node;
+import org.apache.karaf.cellar.core.Configurations;
import org.apache.karaf.cellar.core.control.BasicSwitch;
import org.apache.karaf.cellar.core.control.Switch;
import org.apache.karaf.cellar.core.control.SwitchStatus;
-import org.apache.karaf.cellar.core.event.Event;
import org.apache.karaf.cellar.core.event.EventHandler;
import org.apache.karaf.cellar.core.event.EventType;
+import org.osgi.service.cm.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,7 +36,7 @@ public class RemoteEventHandler extends
public void handle(RemoteEvent event) {
// check if the handler is ON
- if (eventSwitch.getStatus().equals(SwitchStatus.OFF)) {
+ if (this.getSwitch().getStatus().equals(SwitchStatus.OFF)) {
LOGGER.warn("CELLAR EVENT: {} is OFF, cluster event not handled", SWITCH_ID);
return;
}
@@ -75,6 +75,20 @@ public class RemoteEventHandler extends
}
public Switch getSwitch() {
+ // load the switch status from the config
+ try {
+ Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
+ if (configuration != null) {
+ Boolean status = new Boolean((String) configuration.getProperties().get(Configurations.HANDLER + "." + this.getClass().getName()));
+ if (status) {
+ eventSwitch.turnOn();
+ } else {
+ eventSwitch.turnOff();
+ }
+ }
+ } catch (Exception e) {
+ // ignore
+ }
return eventSwitch;
}
Modified: karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java Fri Nov 2 08:52:59 2012
@@ -13,6 +13,7 @@
*/
package org.apache.karaf.cellar.features;
+import org.apache.karaf.cellar.core.Configurations;
import org.apache.karaf.cellar.core.control.BasicSwitch;
import org.apache.karaf.cellar.core.control.Switch;
import org.apache.karaf.cellar.core.control.SwitchStatus;
@@ -20,6 +21,7 @@ import org.apache.karaf.cellar.core.even
import org.apache.karaf.cellar.core.event.EventType;
import org.apache.karaf.features.FeatureEvent;
import org.apache.karaf.features.FeaturesService;
+import org.osgi.service.cm.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,7 +56,7 @@ public class FeaturesEventHandler extend
public void handle(RemoteFeaturesEvent event) {
// check if the handler switch is ON
- if (eventSwitch.getStatus().equals(SwitchStatus.OFF)) {
+ if (this.getSwitch().getStatus().equals(SwitchStatus.OFF)) {
LOGGER.warn("CELLAR FEATURES: {} switch is OFF, cluster event is not handled", SWITCH_ID);
return;
}
@@ -108,6 +110,20 @@ public class FeaturesEventHandler extend
}
public Switch getSwitch() {
+ // load the switch status from the config
+ try {
+ Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
+ if (configuration != null) {
+ Boolean status = new Boolean((String) configuration.getProperties().get(Configurations.HANDLER + "." + this.getClass().getName()));
+ if (status) {
+ eventSwitch.turnOn();
+ } else {
+ eventSwitch.turnOff();
+ }
+ }
+ } catch (Exception e) {
+ // ignore
+ }
return eventSwitch;
}
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueConsumer.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueConsumer.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueConsumer.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueConsumer.java Fri Nov 2 08:52:59 2012
@@ -176,7 +176,7 @@ public class QueueConsumer<E extends Eve
}
public Switch getSwitch() {
- // load the init status from the config
+ // load the switch status from the config
try {
Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
if (configuration != null) {
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueProducer.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueProducer.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueProducer.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueProducer.java Fri Nov 2 08:52:59 2012
@@ -94,7 +94,7 @@ public class QueueProducer<E extends Eve
}
public Switch getSwitch() {
- // load the init status from the config
+ // load the switch status from the config
try {
Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
if (configuration != null) {
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/TopicConsumer.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/TopicConsumer.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/TopicConsumer.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/TopicConsumer.java Fri Nov 2 08:52:59 2012
@@ -135,7 +135,7 @@ public class TopicConsumer<E extends Eve
}
public Switch getSwitch() {
- // load the init status from the config
+ // load the switch status from the config
try {
Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
if (configuration != null) {
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/TopicProducer.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/TopicProducer.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/TopicProducer.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/TopicProducer.java Fri Nov 2 08:52:59 2012
@@ -76,7 +76,7 @@ public class TopicProducer<E extends Eve
}
public Switch getSwitch() {
- // load the init status from the config
+ // load the switch status from the config
try {
Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
if (configuration != null) {
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml Fri Nov 2 08:52:59 2012
@@ -126,6 +126,7 @@
<!-- Managed Handlers Command Handlers -->
<bean id="manageHandlersCommandHandler" class="org.apache.karaf.cellar.core.control.ManageHandlersCommandHandler">
<property name="producer" ref="producer"/>
+ <property name="configurationAdmin" ref="configurationAdmin"/>
</bean>
<bean id="manageHandlersResultHandler" class="org.apache.karaf.cellar.core.control.ManageHandlersResultHandler">
Modified: karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java Fri Nov 2 08:52:59 2012
@@ -16,6 +16,7 @@ package org.apache.karaf.cellar.obr;
import org.apache.felix.bundlerepository.Reason;
import org.apache.felix.bundlerepository.Resolver;
import org.apache.felix.bundlerepository.Resource;
+import org.apache.karaf.cellar.core.Configurations;
import org.apache.karaf.cellar.core.control.BasicSwitch;
import org.apache.karaf.cellar.core.control.Switch;
import org.apache.karaf.cellar.core.control.SwitchStatus;
@@ -24,6 +25,7 @@ import org.apache.karaf.cellar.core.even
import org.osgi.framework.Bundle;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.Version;
+import org.osgi.service.cm.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -111,7 +113,7 @@ public class ObrBundleEventHandler exten
public void handle(ObrBundleEvent event) {
// check if the handler is ON
- if (eventSwitch.getStatus().equals(SwitchStatus.OFF)) {
+ if (this.getSwitch().getStatus().equals(SwitchStatus.OFF)) {
LOGGER.warn("CELLAR OBR: {} switch is OFF, cluster event not handled", SWITCH_ID);
return;
}
@@ -161,6 +163,20 @@ public class ObrBundleEventHandler exten
}
public Switch getSwitch() {
+ // load the switch status from the config
+ try {
+ Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
+ if (configuration != null) {
+ Boolean status = new Boolean((String) configuration.getProperties().get(Configurations.HANDLER + "." + this.getClass().getName()));
+ if (status) {
+ eventSwitch.turnOn();
+ } else {
+ eventSwitch.turnOff();
+ }
+ }
+ } catch (Exception e) {
+ // ignore
+ }
return this.eventSwitch;
}
Modified: karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEventHandler.java?rev=1404894&r1=1404893&r2=1404894&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEventHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEventHandler.java Fri Nov 2 08:52:59 2012
@@ -13,11 +13,13 @@
*/
package org.apache.karaf.cellar.obr;
+import org.apache.karaf.cellar.core.Configurations;
import org.apache.karaf.cellar.core.control.BasicSwitch;
import org.apache.karaf.cellar.core.control.Switch;
import org.apache.karaf.cellar.core.control.SwitchStatus;
import org.apache.karaf.cellar.core.event.EventHandler;
import org.apache.karaf.cellar.core.event.EventType;
+import org.osgi.service.cm.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -51,7 +53,7 @@ public class ObrUrlEventHandler extends
public void handle(ObrUrlEvent obrUrlEvent) {
// check if the handler is ON
- if (eventSwitch.getStatus().equals(SwitchStatus.OFF)) {
+ if (this.getSwitch().getStatus().equals(SwitchStatus.OFF)) {
LOGGER.warn("CELLAR OBR: {} switch is OFF, cluster event not handled", SWITCH_ID);
return;
}
@@ -89,6 +91,20 @@ public class ObrUrlEventHandler extends
}
public Switch getSwitch() {
+ // load the switch status from the config
+ try {
+ Configuration configuration = configurationAdmin.getConfiguration(Configurations.NODE);
+ if (configuration != null) {
+ Boolean status = new Boolean((String) configuration.getProperties().get(Configurations.HANDLER + "." + this.getClass().getName()));
+ if (status) {
+ eventSwitch.turnOn();
+ } else {
+ eventSwitch.turnOff();
+ }
+ }
+ } catch (Exception e) {
+ // ignore
+ }
return this.eventSwitch;
}