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