Author: dkulp
Date: Fri Apr  1 03:20:30 2011
New Revision: 1087567

URL: http://svn.apache.org/viewvc?rev=1087567&view=rev
Log:
Add a type converter at parse time as Aries cannot handle the
List<Interceptor<? extends Message> thing that we do.

Added:
    
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/InterceptorTypeConverter.java
   (with props)
Modified:
    cxf/trunk/parent/pom.xml
    
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/AbstractBPBeanDefinitionParser.java
    
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/SimpleBPBeanDefinitionParser.java

Modified: cxf/trunk/parent/pom.xml
URL: 
http://svn.apache.org/viewvc/cxf/trunk/parent/pom.xml?rev=1087567&r1=1087566&r2=1087567&view=diff
==============================================================================
--- cxf/trunk/parent/pom.xml (original)
+++ cxf/trunk/parent/pom.xml Fri Apr  1 03:20:30 2011
@@ -110,7 +110,7 @@
         
<cxf.fastinfoset.bundle.version>1.2.7_3</cxf.fastinfoset.bundle.version>
 
         <!-- various OSGi related versions -->
-        <cxf.aries.version>0.3</cxf.aries.version>
+        <cxf.aries.version>0.2-incubating</cxf.aries.version>
         <cxf.osgi.version>4.2.0</cxf.osgi.version>
         <cxf.karaf.version>2.1.4</cxf.karaf.version>
         <cxf.pax.logging.version>1.6.0</cxf.pax.logging.version>

Modified: 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/AbstractBPBeanDefinitionParser.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/AbstractBPBeanDefinitionParser.java?rev=1087567&r1=1087566&r2=1087567&view=diff
==============================================================================
--- 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/AbstractBPBeanDefinitionParser.java
 (original)
+++ 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/AbstractBPBeanDefinitionParser.java
 Fri Apr  1 03:20:30 2011
@@ -19,6 +19,8 @@
 package org.apache.cxf.configuration.blueprint;
 
 
+import java.util.List;
+
 import javax.xml.namespace.QName;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
@@ -28,6 +30,8 @@ import org.apache.aries.blueprint.Compon
 import org.apache.aries.blueprint.ParserContext;
 import org.apache.aries.blueprint.PassThroughMetadata;
 import org.apache.aries.blueprint.mutable.MutableBeanMetadata;
+import org.apache.aries.blueprint.mutable.MutableCollectionMetadata;
+import org.apache.aries.blueprint.mutable.MutablePassThroughMetadata;
 import org.apache.aries.blueprint.mutable.MutableRefMetadata;
 import org.apache.aries.blueprint.mutable.MutableValueMetadata;
 import org.apache.cxf.bus.blueprint.BlueprintBus;
@@ -61,9 +65,12 @@ public abstract class AbstractBPBeanDefi
     protected Metadata parseListData(ParserContext context, 
                                      ComponentMetadata enclosingComponent, 
                                      Element element) {
-        return context.parseElement(CollectionMetadata.class, 
+        MutableCollectionMetadata m
+            = 
(MutableCollectionMetadata)context.parseElement(CollectionMetadata.class, 
                                     enclosingComponent, 
                                     element);
+        m.setCollectionClass(List.class);
+        return m;
     }
     protected Metadata parseMapData(ParserContext context, 
                                      ComponentMetadata enclosingComponent, 
@@ -244,6 +251,13 @@ public abstract class AbstractBPBeanDefi
         if (meta instanceof PassThroughMetadata) {
             blueprintBundle = (Bundle) ((PassThroughMetadata) 
meta).getObject();
         }
+        if 
(!cdr.containsComponentDefinition(InterceptorTypeConverter.class.getName())) {
+            MutablePassThroughMetadata md = 
context.createMetadata(MutablePassThroughMetadata.class);
+            md.setObject(new InterceptorTypeConverter());
+            
+            md.setId(InterceptorTypeConverter.class.getName());
+            context.getComponentDefinitionRegistry().registerTypeConverter(md);
+        }
         if (blueprintBundle != null
             && !cdr.containsComponentDefinition(name)) {
             //Create a bus
@@ -257,6 +271,7 @@ public abstract class AbstractBPBeanDefi
             bus.setInitMethod("initialize");
             
             
context.getComponentDefinitionRegistry().registerComponentDefinition(bus);
+            
             return bus;
         }
         return (MutableBeanMetadata)cdr.getComponentDefinition(name);

Added: 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/InterceptorTypeConverter.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/InterceptorTypeConverter.java?rev=1087567&view=auto
==============================================================================
--- 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/InterceptorTypeConverter.java
 (added)
+++ 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/InterceptorTypeConverter.java
 Fri Apr  1 03:20:30 2011
@@ -0,0 +1,42 @@
+/**
+ * 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
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.configuration.blueprint;
+
+import org.apache.cxf.interceptor.Interceptor;
+import org.osgi.service.blueprint.container.Converter;
+import org.osgi.service.blueprint.container.ReifiedType;
+
+/**
+ * 
+ */
+public class InterceptorTypeConverter implements Converter {
+
+    /** {@inheritDoc}*/
+    public boolean canConvert(Object sourceObject, ReifiedType targetType) {
+        return sourceObject instanceof Interceptor
+            && targetType.getRawClass().isInstance(sourceObject); 
+    }
+
+    /** {@inheritDoc}*/
+    public Object convert(Object sourceObject, ReifiedType targetType) throws 
Exception {
+        return sourceObject;
+    }
+
+}

Propchange: 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/InterceptorTypeConverter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/InterceptorTypeConverter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/SimpleBPBeanDefinitionParser.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/SimpleBPBeanDefinitionParser.java?rev=1087567&r1=1087566&r2=1087567&view=diff
==============================================================================
--- 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/SimpleBPBeanDefinitionParser.java
 (original)
+++ 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/configuration/blueprint/SimpleBPBeanDefinitionParser.java
 Fri Apr  1 03:20:30 2011
@@ -48,6 +48,7 @@ public class SimpleBPBeanDefinitionParse
     }
     
     public Metadata parse(Element element, ParserContext context) {
+        
         MutableBeanMetadata cxfBean = 
context.createMetadata(MutableBeanMetadata.class);
         cxfBean.setRuntimeClass(cls);
         String fact = getFactorySuffix();


Reply via email to