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/05/06 03:24:11 UTC
svn commit: r1100016 - in /cxf/trunk:
common/common/src/main/java/org/apache/cxf/common/util/
rt/core/src/main/java/org/apache/cxf/endpoint/
rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/
rt/frontend/simple/src/main/java/org/apache/cxf/frontend/
Author: dkulp
Date: Fri May 6 01:24:11 2011
New Revision: 1100016
URL: http://svn.apache.org/viewvc?rev=1100016&view=rev
Log:
[CXF-3492] Attempt to fix issues of exposing a strange proxied object
representing an OSGi service.
Patch from David Metcalf heavily modified and extended in an attempt to
make it work for both him and our unit tests.
Modified:
cxf/trunk/common/common/src/main/java/org/apache/cxf/common/util/SpringAopClassHelper.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/AbstractEndpointFactory.java
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java
cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
Modified: cxf/trunk/common/common/src/main/java/org/apache/cxf/common/util/SpringAopClassHelper.java
URL: http://svn.apache.org/viewvc/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/util/SpringAopClassHelper.java?rev=1100016&r1=1100015&r2=1100016&view=diff
==============================================================================
--- cxf/trunk/common/common/src/main/java/org/apache/cxf/common/util/SpringAopClassHelper.java (original)
+++ cxf/trunk/common/common/src/main/java/org/apache/cxf/common/util/SpringAopClassHelper.java Fri May 6 01:24:11 2011
@@ -55,7 +55,7 @@ class SpringAopClassHelper extends Class
}
protected Class getRealClassInternal(Object o) {
- if (AopUtils.isAopProxy(o)) {
+ if (AopUtils.isAopProxy(o) && (o instanceof Advised)) {
Advised advised = (Advised)o;
try {
TargetSource targetSource = advised.getTargetSource();
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/AbstractEndpointFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/AbstractEndpointFactory.java?rev=1100016&r1=1100015&r2=1100016&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/AbstractEndpointFactory.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/AbstractEndpointFactory.java Fri May 6 01:24:11 2011
@@ -221,12 +221,18 @@ public abstract class AbstractEndpointFa
}
return false;
}
-
/**
- * Add annotationed Interceptors and Features to the Endpoint
+ * Add annotated Interceptors and Features to the Endpoint
* @param ep
*/
protected void initializeAnnotationInterceptors(Endpoint ep, Class<?> cls) {
+ initializeAnnotationInterceptors(ep, new Class<?>[] {cls});
+ }
+ /**
+ * Add annotationed Interceptors and Features to the Endpoint
+ * @param ep
+ */
+ protected void initializeAnnotationInterceptors(Endpoint ep, Class<?> ... cls) {
AnnotationInterceptors provider = new AnnotationInterceptors(cls);
if (initializeAnnotationInterceptors(provider, ep)) {
LOG.fine("Added annotation based interceptors and features");
Modified: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java?rev=1100016&r1=1100015&r2=1100016&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java Fri May 6 01:24:11 2011
@@ -94,15 +94,25 @@ public class JaxWsServerFactoryBean exte
* Add annotated Interceptors and Features to the Endpoint
* @param ep
*/
- protected void initializeAnnotationInterceptors(Endpoint ep, Class<?> cls) {
+ protected void initializeAnnotationInterceptors(Endpoint ep, Class<?> ... cls) {
Class<?> seiClass = ((JaxWsServiceFactoryBean)getServiceFactory())
.getJaxWsImplementorInfo().getSEIClass();
- AnnotationInterceptors provider;
if (seiClass != null) {
- provider = new AnnotationInterceptors(cls, seiClass);
- } else {
- provider = new AnnotationInterceptors(cls);
+ boolean found = false;
+ for (Class<?> c : cls) {
+ if (c.equals(seiClass)) {
+ found = true;
+ }
+ }
+ if (!found) {
+ Class<?> cls2[] = new Class<?>[cls.length + 1];
+ System.arraycopy(cls, 0, cls2, 0, cls.length);
+ cls2[cls.length] = seiClass;
+ cls = cls2;
+ }
}
+
+ AnnotationInterceptors provider = new AnnotationInterceptors(cls);
initializeAnnotationInterceptors(provider, ep);
}
Modified: cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java?rev=1100016&r1=1100015&r2=1100016&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java (original)
+++ cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java Fri May 6 01:24:11 2011
@@ -175,21 +175,28 @@ public class ServerFactoryBean extends A
} catch (IOException e) {
throw new ServiceConstructionException(e);
}
-
+
if (serviceBean != null) {
- initializeAnnotationInterceptors(server.getEndpoint(),
- ClassHelper.getRealClass(getServiceBean()));
+ Class<?> cls = ClassHelper.getRealClass(getServiceBean());
+ if (getServiceClass() == null || cls.equals(getServiceClass())) {
+ initializeAnnotationInterceptors(server.getEndpoint(), cls);
+ } else {
+ initializeAnnotationInterceptors(server.getEndpoint(), cls, getServiceClass());
+ }
} else if (getServiceClass() != null) {
initializeAnnotationInterceptors(server.getEndpoint(), getServiceClass());
}
applyFeatures();
-
+
getServiceFactory().sendEvent(FactoryBeanListener.Event.SERVER_CREATED, server, serviceBean,
serviceBean == null
? getServiceClass() == null
- ? getServiceFactory().getServiceClass() : getServiceClass()
- : ClassHelper.getRealClass(getServiceBean()));
+ ? getServiceFactory().getServiceClass()
+ : getServiceClass()
+ : getServiceClass() == null
+ ? ClassHelper.getRealClass(getServiceBean())
+ : getServiceClass());
if (start) {
server.start();