You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by ma...@apache.org on 2010/03/09 16:10:15 UTC

svn commit: r920917 - in /incubator/ace/trunk/legacy: gateway/src/org/apache/ace/deployment/task/ gateway/src/org/apache/ace/scheduler/ server/src/org/apache/ace/client/repository/impl/ server/src/org/apache/ace/client/repository/stateful/impl/

Author: marrs
Date: Tue Mar  9 15:10:14 2010
New Revision: 920917

URL: http://svn.apache.org/viewvc?rev=920917&view=rev
Log:
Fixed the scheduler to really stop all tasks when the bundle is stopped.
Added some casts to remove errors after upgrading to the new event admin.

Modified:
    incubator/ace/trunk/legacy/gateway/src/org/apache/ace/deployment/task/DeploymentCheckTask.java
    incubator/ace/trunk/legacy/gateway/src/org/apache/ace/scheduler/Scheduler.java
    incubator/ace/trunk/legacy/gateway/src/org/apache/ace/scheduler/SchedulerTask.java
    incubator/ace/trunk/legacy/server/src/org/apache/ace/client/repository/impl/ChangeNotifierImpl.java
    incubator/ace/trunk/legacy/server/src/org/apache/ace/client/repository/stateful/impl/StatefulGatewayRepositoryImpl.java

Modified: incubator/ace/trunk/legacy/gateway/src/org/apache/ace/deployment/task/DeploymentCheckTask.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/legacy/gateway/src/org/apache/ace/deployment/task/DeploymentCheckTask.java?rev=920917&r1=920916&r2=920917&view=diff
==============================================================================
--- incubator/ace/trunk/legacy/gateway/src/org/apache/ace/deployment/task/DeploymentCheckTask.java (original)
+++ incubator/ace/trunk/legacy/gateway/src/org/apache/ace/deployment/task/DeploymentCheckTask.java Tue Mar  9 15:10:14 2010
@@ -20,6 +20,7 @@ package org.apache.ace.deployment.task;
 
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Dictionary;
 import java.util.Properties;
 
 import org.osgi.framework.Version;
@@ -57,7 +58,7 @@ public class DeploymentCheckTask extends
                 Properties properties = new Properties();
                 properties.put("deploymentpackage.localversion", ((highestLocalVersion == null) ? Version.emptyVersion : highestLocalVersion));
                 properties.put("deploymentpackage.remoteversion", highestRemoteVersion);
-                m_eventAdmin.postEvent(new Event(TOPIC_UPDATE_AVAILABLE, properties));
+                m_eventAdmin.postEvent(new Event(TOPIC_UPDATE_AVAILABLE, (Dictionary) properties));
             }
         }
         catch (MalformedURLException e) {

Modified: incubator/ace/trunk/legacy/gateway/src/org/apache/ace/scheduler/Scheduler.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/legacy/gateway/src/org/apache/ace/scheduler/Scheduler.java?rev=920917&r1=920916&r2=920917&view=diff
==============================================================================
--- incubator/ace/trunk/legacy/gateway/src/org/apache/ace/scheduler/Scheduler.java (original)
+++ incubator/ace/trunk/legacy/gateway/src/org/apache/ace/scheduler/Scheduler.java Tue Mar  9 15:10:14 2010
@@ -40,6 +40,14 @@ import org.osgi.service.cm.ManagedServic
 public class Scheduler implements ManagedService {
     protected Map m_tasks = new HashMap/*<String, SchedulerTask>*/();
 
+    public void stop() {
+        for (Iterator i = m_tasks.keySet().iterator(); i.hasNext();) {
+            String name = (String) i.next();
+            SchedulerTask schedTask = (SchedulerTask) m_tasks.get(name);
+            schedTask.stop();
+        }
+    }
+
     /**
      * Adds a new runnable to this scheduler. The runnable will be created if necessary, registered, and processed.
      * @param name A name for this task.

Modified: incubator/ace/trunk/legacy/gateway/src/org/apache/ace/scheduler/SchedulerTask.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/legacy/gateway/src/org/apache/ace/scheduler/SchedulerTask.java?rev=920917&r1=920916&r2=920917&view=diff
==============================================================================
--- incubator/ace/trunk/legacy/gateway/src/org/apache/ace/scheduler/SchedulerTask.java (original)
+++ incubator/ace/trunk/legacy/gateway/src/org/apache/ace/scheduler/SchedulerTask.java Tue Mar  9 15:10:14 2010
@@ -104,6 +104,13 @@ public class SchedulerTask {
         m_configurationRecipe = recipe;
     }
 
+    public void stop() {
+        if (m_executer != null) {
+            m_executer.stop();
+            m_executer = null;
+        }
+    }
+
     public boolean process() {
         Object recipe = findRecipe();
         if ((recipe != null) && (m_task != null)) {
@@ -118,10 +125,7 @@ public class SchedulerTask {
         }
         else {
             // there is nothing to do, since there is no recipe or task
-            if (m_executer != null) {
-                m_executer.stop();
-                m_executer = null;
-            }
+            stop();
         }
         m_currentRecipe = recipe;
         return ((recipe != null) || (m_task != null));

Modified: incubator/ace/trunk/legacy/server/src/org/apache/ace/client/repository/impl/ChangeNotifierImpl.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/legacy/server/src/org/apache/ace/client/repository/impl/ChangeNotifierImpl.java?rev=920917&r1=920916&r2=920917&view=diff
==============================================================================
--- incubator/ace/trunk/legacy/server/src/org/apache/ace/client/repository/impl/ChangeNotifierImpl.java (original)
+++ incubator/ace/trunk/legacy/server/src/org/apache/ace/client/repository/impl/ChangeNotifierImpl.java Tue Mar  9 15:10:14 2010
@@ -18,6 +18,7 @@
  */
 package org.apache.ace.client.repository.impl;
 
+import java.util.Dictionary;
 import java.util.Properties;
 
 import org.apache.ace.client.repository.SessionFactory;
@@ -70,9 +71,9 @@ public class ChangeNotifierImpl implemen
 
     public void notifyChanged(String topic, Properties props, boolean internalOnly) {
         props = addSession(props);
-        m_eventAdmin.sendEvent(new Event(m_privateTopicRoot + m_entityRoot + topic, props));
+        m_eventAdmin.sendEvent(new Event(m_privateTopicRoot + m_entityRoot + topic, (Dictionary) props));
         if (!internalOnly) {
-            m_eventAdmin.postEvent(new Event(m_publicTopicRoot + m_entityRoot + topic, props));
+            m_eventAdmin.postEvent(new Event(m_publicTopicRoot + m_entityRoot + topic, (Dictionary) props));
         }
     }
 

Modified: incubator/ace/trunk/legacy/server/src/org/apache/ace/client/repository/stateful/impl/StatefulGatewayRepositoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/legacy/server/src/org/apache/ace/client/repository/stateful/impl/StatefulGatewayRepositoryImpl.java?rev=920917&r1=920916&r2=920917&view=diff
==============================================================================
--- incubator/ace/trunk/legacy/server/src/org/apache/ace/client/repository/stateful/impl/StatefulGatewayRepositoryImpl.java (original)
+++ incubator/ace/trunk/legacy/server/src/org/apache/ace/client/repository/stateful/impl/StatefulGatewayRepositoryImpl.java Tue Mar  9 15:10:14 2010
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.Dictionary;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -323,7 +324,7 @@ public class StatefulGatewayRepositoryIm
      */
     void notifyChanged(StatefulGatewayObject sgoi, String topic, Properties additionalProperties) {
         additionalProperties.put(RepositoryObject.EVENT_ENTITY, sgoi);
-        m_eventAdmin.postEvent(new Event(topic, additionalProperties));
+        m_eventAdmin.postEvent(new Event(topic, (Dictionary) additionalProperties));
     }
 
     /**