You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2011/02/24 15:06:57 UTC

svn commit: r1074155 - in /felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl: ./ handler/ security/ tasks/

Author: cziegeler
Date: Thu Feb 24 14:06:57 2011
New Revision: 1074155

URL: http://svn.apache.org/viewvc?rev=1074155&view=rev
Log:
FELIX-2861 : Remove unnecessary object creation

Modified:
    felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/EventAdminImpl.java
    felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlacklistingHandlerTasks.java
    felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/HandlerTasks.java
    felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/PermissionsUtil.java
    felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java
    felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTask.java
    felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/SyncDeliverTasks.java

Modified: felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/EventAdminImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/EventAdminImpl.java?rev=1074155&r1=1074154&r2=1074155&view=diff
==============================================================================
--- felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/EventAdminImpl.java (original)
+++ felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/EventAdminImpl.java Thu Feb 24 14:06:57 2011
@@ -18,6 +18,8 @@
  */
 package org.apache.felix.eventadmin.impl;
 
+import java.util.List;
+
 import org.apache.felix.eventadmin.impl.dispatch.DefaultThreadPool;
 import org.apache.felix.eventadmin.impl.handler.HandlerTasks;
 import org.apache.felix.eventadmin.impl.tasks.*;
@@ -128,7 +130,7 @@ public class EventAdminImpl implements E
              * @throws IllegalStateException - This is a null object and this method
              *          will always throw an IllegalStateException
              */
-            public HandlerTask[] createHandlerTasks(final Event event)
+            public List createHandlerTasks(final Event event)
             {
                 throw new IllegalStateException("The EventAdmin is stopped");
             }
@@ -149,10 +151,10 @@ public class EventAdminImpl implements E
      * This is a utility method that uses the given DeliverTasks to create a
      * dispatch tasks that subsequently is used to dispatch the given HandlerTasks.
      */
-    private void handleEvent(final HandlerTask[] managers,
+    private void handleEvent(List managers,
         final DeliverTask manager)
     {
-        if (0 < managers.length)
+        if (managers != null && managers.size() > 0 )
         {
             // This might throw an IllegalStateException in case that we are stopped
             // and the null object for m_managers was not fast enough established

Modified: felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlacklistingHandlerTasks.java
URL: http://svn.apache.org/viewvc/felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlacklistingHandlerTasks.java?rev=1074155&r1=1074154&r2=1074155&view=diff
==============================================================================
--- felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlacklistingHandlerTasks.java (original)
+++ felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlacklistingHandlerTasks.java Thu Feb 24 14:06:57 2011
@@ -22,7 +22,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.felix.eventadmin.impl.security.PermissionsUtil;
-import org.apache.felix.eventadmin.impl.tasks.HandlerTask;
 import org.apache.felix.eventadmin.impl.tasks.HandlerTaskImpl;
 import org.apache.felix.eventadmin.impl.util.LogWrapper;
 import org.osgi.framework.*;
@@ -91,10 +90,8 @@ public class BlacklistingHandlerTasks im
      *
      * @see org.apache.felix.eventadmin.impl.handler.HandlerTasks#createHandlerTasks(org.osgi.service.event.Event)
      */
-    public HandlerTask[] createHandlerTasks(final Event event)
+    public List createHandlerTasks(final Event event)
     {
-        final List result = new ArrayList();
-
         ServiceReference[] handlerRefs = null;
 
         try
@@ -108,11 +105,12 @@ public class BlacklistingHandlerTasks im
                 "Invalid EVENT_TOPIC [" + event.getTopic() + "]", e);
         }
 
-        if(null == handlerRefs)
+        if (null == handlerRefs || handlerRefs.length == 0 )
         {
-            handlerRefs = new ServiceReference[0];
+            return null;
         }
 
+        final List result = new ArrayList();
         for (int i = 0; i < handlerRefs.length; i++)
         {
             if (!m_blackList.contains(handlerRefs[i])
@@ -142,8 +140,7 @@ public class BlacklistingHandlerTasks im
             }
         }
 
-        return (HandlerTaskImpl[]) result
-            .toArray(new HandlerTaskImpl[result.size()]);
+        return result;
     }
 
     /**

Modified: felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/HandlerTasks.java
URL: http://svn.apache.org/viewvc/felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/HandlerTasks.java?rev=1074155&r1=1074154&r2=1074155&view=diff
==============================================================================
--- felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/HandlerTasks.java (original)
+++ felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/HandlerTasks.java Thu Feb 24 14:06:57 2011
@@ -18,7 +18,8 @@
  */
 package org.apache.felix.eventadmin.impl.handler;
 
-import org.apache.felix.eventadmin.impl.tasks.HandlerTask;
+import java.util.List;
+
 import org.osgi.service.event.Event;
 
 /**
@@ -37,5 +38,5 @@ public interface HandlerTasks
      *
      * @return A delivery task for each handler that matches the given event
      */
-    HandlerTask[] createHandlerTasks(final Event event);
+   List createHandlerTasks(final Event event);
 }

Modified: felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/PermissionsUtil.java
URL: http://svn.apache.org/viewvc/felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/PermissionsUtil.java?rev=1074155&r1=1074154&r2=1074155&view=diff
==============================================================================
--- felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/PermissionsUtil.java (original)
+++ felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/PermissionsUtil.java Thu Feb 24 14:06:57 2011
@@ -23,8 +23,6 @@ import org.osgi.service.event.TopicPermi
 /**
  * Utility class for permissions.
  *
- * @see org.apache.felix.eventadmin.impl.security.TopicPermissions
- *
  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public abstract class PermissionsUtil
@@ -45,7 +43,6 @@ public abstract class PermissionsUtil
      * @return The created permission or a <tt>java.lang.Object</tt> in case the
      *      permission could not be created.
      *
-     * @see org.apache.felix.eventadmin.impl.security.TopicPermissions#createTopicPermission(String)
      * @see org.osgi.service.event.TopicPermission
      */
     public static Object createPublishPermission(final String topic)
@@ -81,7 +78,6 @@ public abstract class PermissionsUtil
      * @return The created permission or a <tt>java.lang.Object</tt> in case the
      *      permission could not be created.
      *
-     * @see org.apache.felix.eventadmin.impl.security.TopicPermissions#createTopicPermission(String)
      * @see org.osgi.service.event.TopicPermission
      */
     public static Object createSubscribePermission(final String topic)

Modified: felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java
URL: http://svn.apache.org/viewvc/felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java?rev=1074155&r1=1074154&r2=1074155&view=diff
==============================================================================
--- felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java (original)
+++ felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java Thu Feb 24 14:06:57 2011
@@ -62,7 +62,7 @@ public class AsyncDeliverTasks implement
      *
      * @see org.apache.felix.eventadmin.impl.tasks.DeliverTask#execute(org.apache.felix.eventadmin.impl.tasks.HandlerTask[])
      */
-    public void execute(final HandlerTask[] tasks)
+    public void execute(final List tasks)
     {
         final Thread currentThread = Thread.currentThread();
         TaskExecuter executer = null;
@@ -91,7 +91,7 @@ public class AsyncDeliverTasks implement
 
         private final Object m_key;
 
-        public TaskExecuter(final HandlerTask[] tasks, final Object key)
+        public TaskExecuter(final List tasks, final Object key)
         {
             m_key = key;
             m_tasks.add(tasks);
@@ -102,10 +102,10 @@ public class AsyncDeliverTasks implement
             boolean running;
             do
             {
-                HandlerTask[] tasks = null;
+                List tasks = null;
                 synchronized ( m_tasks )
                 {
-                    tasks = (HandlerTask[]) m_tasks.remove(0);
+                    tasks = (List) m_tasks.remove(0);
                 }
                 m_deliver_task.execute(tasks);
                 synchronized ( m_running_threads )
@@ -119,7 +119,7 @@ public class AsyncDeliverTasks implement
             } while ( running );
         }
 
-        public void add(final HandlerTask[] tasks)
+        public void add(final List tasks)
         {
             synchronized ( m_tasks )
             {

Modified: felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTask.java
URL: http://svn.apache.org/viewvc/felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTask.java?rev=1074155&r1=1074154&r2=1074155&view=diff
==============================================================================
--- felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTask.java (original)
+++ felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTask.java Thu Feb 24 14:06:57 2011
@@ -1,4 +1,4 @@
-/* 
+/*
  * 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
@@ -18,17 +18,19 @@
  */
 package org.apache.felix.eventadmin.impl.tasks;
 
+import java.util.List;
+
 /**
  * Dispatch given event dispatch tasks.
- * 
+ *
  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface DeliverTask
 {
     /**
      * Dispatch the given event dispatch tasks.
-     * 
+     *
      * @param handlerTasks The event dispatch tasks to execute
      */
-    public void execute(final HandlerTask[] handlerTasks);
+    public void execute(List handlerTasks);
 }

Modified: felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/SyncDeliverTasks.java
URL: http://svn.apache.org/viewvc/felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/SyncDeliverTasks.java?rev=1074155&r1=1074154&r2=1074155&view=diff
==============================================================================
--- felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/SyncDeliverTasks.java (original)
+++ felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/SyncDeliverTasks.java Thu Feb 24 14:06:57 2011
@@ -18,6 +18,9 @@
  */
 package org.apache.felix.eventadmin.impl.tasks;
 
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.felix.eventadmin.impl.dispatch.DefaultThreadPool;
 
 import EDU.oswego.cs.dl.util.concurrent.TimeoutException;
@@ -189,9 +192,9 @@ public class SyncDeliverTasks implements
      *
      * @param tasks The event handler dispatch tasks to execute
      *
-     * @see org.apache.felix.eventadmin.impl.tasks.DeliverTask#execute(HandlerTask[])
+     * @see org.apache.felix.eventadmin.impl.tasks.DeliverTask#execute(List)
      */
-    public void execute(final HandlerTask[] tasks)
+    public void execute(final List tasks)
     {
         final Thread sleepingThread = Thread.currentThread();
         SyncThread syncThread = sleepingThread instanceof SyncThread ? (SyncThread)sleepingThread : null;
@@ -207,9 +210,10 @@ public class SyncDeliverTasks implements
             syncThread.innerEventHandlingStart();
         }
 
-        for(int i=0;i<tasks.length;i++)
+        final Iterator i = tasks.iterator();
+        while ( i.hasNext() )
         {
-            final HandlerTask task = tasks[i];
+            final HandlerTask task = (HandlerTask)i.next();
 
             if ( !useTimeout(task) )
             {