You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2011/08/10 17:20:27 UTC
svn commit: r1156224 - in /cxf/branches/2.4.x-fixes: ./
rt/core/src/main/java/org/apache/cxf/endpoint/
rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/
Author: dkulp
Date: Wed Aug 10 15:20:26 2011
New Revision: 1156224
URL: http://svn.apache.org/viewvc?rev=1156224&view=rev
Log:
Merged revisions 1156220 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1156220 | dkulp | 2011-08-10 11:17:05 -0400 (Wed, 10 Aug 2011) | 1 line
[CXF-3728] Detect lifecycle listeners automatically
........
Modified:
cxf/branches/2.4.x-fixes/ (props changed)
cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ClientLifeCycleManagerImpl.java
cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ServerLifeCycleManagerImpl.java
cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMManager.java
Propchange: cxf/branches/2.4.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ClientLifeCycleManagerImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ClientLifeCycleManagerImpl.java?rev=1156224&r1=1156223&r2=1156224&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ClientLifeCycleManagerImpl.java (original)
+++ cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ClientLifeCycleManagerImpl.java Wed Aug 10 15:20:26 2011
@@ -19,41 +19,50 @@
package org.apache.cxf.endpoint;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.Collection;
+import java.util.concurrent.CopyOnWriteArrayList;
+import org.apache.cxf.Bus;
import org.apache.cxf.common.injection.NoJSR250Annotations;
+import org.apache.cxf.configuration.ConfiguredBeanLocator;
import org.apache.cxf.extension.BusExtension;
@NoJSR250Annotations
public class ClientLifeCycleManagerImpl implements ClientLifeCycleManager, BusExtension {
- private List<ClientLifeCycleListener> listeners = new ArrayList<ClientLifeCycleListener>();
+ private CopyOnWriteArrayList<ClientLifeCycleListener> listeners
+ = new CopyOnWriteArrayList<ClientLifeCycleListener>();
+ public ClientLifeCycleManagerImpl() {
+
+ }
+
+ public ClientLifeCycleManagerImpl(Bus b) {
+ Collection<? extends ClientLifeCycleListener> l = b.getExtension(ConfiguredBeanLocator.class)
+ .getBeansOfType(ClientLifeCycleListener.class);
+ if (l != null) {
+ listeners.addAll(l);
+ }
+ }
+
public Class<?> getRegistrationType() {
return ClientLifeCycleManager.class;
}
public void registerListener(ClientLifeCycleListener listener) {
- if (!listeners.contains(listener)) {
- listeners.add(listener);
- }
+ listeners.addIfAbsent(listener);
}
public void clientCreated(Client client) {
- if (null != listeners) {
- for (ClientLifeCycleListener listener : listeners) {
- listener.clientCreated(client);
- }
+ for (ClientLifeCycleListener listener : listeners) {
+ listener.clientCreated(client);
}
}
public void clientDestroyed(Client client) {
- if (null != listeners) {
- for (ClientLifeCycleListener listener : listeners) {
- listener.clientDestroyed(client);
- }
- }
+ for (ClientLifeCycleListener listener : listeners) {
+ listener.clientDestroyed(client);
+ }
}
public void unRegisterListener(ClientLifeCycleListener listener) {
Modified: cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ServerLifeCycleManagerImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ServerLifeCycleManagerImpl.java?rev=1156224&r1=1156223&r2=1156224&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ServerLifeCycleManagerImpl.java (original)
+++ cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ServerLifeCycleManagerImpl.java Wed Aug 10 15:20:26 2011
@@ -19,25 +19,38 @@
package org.apache.cxf.endpoint;
-import java.util.List;
+import java.util.Collection;
import java.util.concurrent.CopyOnWriteArrayList;
+import org.apache.cxf.Bus;
import org.apache.cxf.common.injection.NoJSR250Annotations;
+import org.apache.cxf.configuration.ConfiguredBeanLocator;
import org.apache.cxf.extension.BusExtension;
@NoJSR250Annotations
public class ServerLifeCycleManagerImpl implements ServerLifeCycleManager, BusExtension {
- private List<ServerLifeCycleListener> listeners =
+ private CopyOnWriteArrayList<ServerLifeCycleListener> listeners =
new CopyOnWriteArrayList<ServerLifeCycleListener>();
+ public ServerLifeCycleManagerImpl() {
+
+ }
+ public ServerLifeCycleManagerImpl(Bus b) {
+ Collection<? extends ServerLifeCycleListener> l = b.getExtension(ConfiguredBeanLocator.class)
+ .getBeansOfType(ServerLifeCycleListener.class);
+ if (l != null) {
+ listeners.addAll(l);
+ }
+ }
public Class<?> getRegistrationType() {
return ServerLifeCycleManager.class;
}
+
public synchronized void registerListener(ServerLifeCycleListener listener) {
- listeners.add(listener);
+ listeners.addIfAbsent(listener);
}
public void startServer(Server server) {
Modified: cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMManager.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMManager.java?rev=1156224&r1=1156223&r2=1156224&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMManager.java (original)
+++ cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMManager.java Wed Aug 10 15:20:26 2011
@@ -70,7 +70,7 @@ import org.apache.cxf.ws.rm.soap.SoapFau
/**
*
*/
-public class RMManager implements ServerLifeCycleListener, ClientLifeCycleListener {
+public class RMManager {
private static final Logger LOG = LogUtils.getL7dLogger(RMManager.class);
@@ -527,11 +527,25 @@ public class RMManager implements Server
}
ServerLifeCycleManager slm = bus.getExtension(ServerLifeCycleManager.class);
if (null != slm) {
- slm.registerListener(this);
+ slm.registerListener(new ServerLifeCycleListener() {
+ public void startServer(Server server) {
+ RMManager.this.startServer(server);
+ }
+ public void stopServer(Server server) {
+ RMManager.this.stopServer(server);
+ }
+ });
}
ClientLifeCycleManager clm = bus.getExtension(ClientLifeCycleManager.class);
if (null != clm) {
- clm.registerListener(this);
+ clm.registerListener(new ClientLifeCycleListener() {
+ public void clientCreated(Client client) {
+ RMManager.this.clientCreated(client);
+ }
+ public void clientDestroyed(Client client) {
+ RMManager.this.clientDestroyed(client);
+ }
+ });
}
}