You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by gn...@apache.org on 2015/11/27 12:08:40 UTC

svn commit: r1716829 [3/3] - in /aries/trunk/blueprint: ./ blueprint-spring-extender/ blueprint-spring-extender/src/ blueprint-spring-extender/src/main/ blueprint-spring-extender/src/main/java/ blueprint-spring-extender/src/main/java/org/ blueprint-spr...

Modified: aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/BlueprintNamespaceHandler.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/BlueprintNamespaceHandler.java?rev=1716829&r1=1716828&r2=1716829&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/BlueprintNamespaceHandler.java (original)
+++ aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/BlueprintNamespaceHandler.java Fri Nov 27 11:08:40 2015
@@ -22,7 +22,6 @@ import java.util.Properties;
 import java.util.Set;
 
 import org.apache.aries.blueprint.ComponentDefinitionRegistry;
-import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.NamespaceHandler2;
 import org.apache.aries.blueprint.ParserContext;
 import org.apache.aries.blueprint.PassThroughMetadata;
@@ -112,7 +111,7 @@ public class BlueprintNamespaceHandler i
 
     @Override
     public ComponentMetadata decorate(Node node, ComponentMetadata componentMetadata, ParserContext parserContext) {
-        throw new UnsupportedOperationException();
+        return componentMetadata;
     }
 
     private org.springframework.beans.factory.xml.ParserContext getOrCreateParserContext(ParserContext parserContext) {
@@ -203,7 +202,11 @@ public class BlueprintNamespaceHandler i
             ReaderEventListener listener = new EmptyReaderEventListener();
             SourceExtractor extractor = new NullSourceExtractor();
             NamespaceHandlerResolver resolver = new SpringNamespaceHandlerResolver(parserContext);
-            XmlReaderContext xmlReaderContext = new XmlReaderContext(resource, problemReporter, listener, extractor, xbdr, resolver);
+            xbdr.setProblemReporter(problemReporter);
+            xbdr.setEventListener(listener);
+            xbdr.setSourceExtractor(extractor);
+            xbdr.setNamespaceHandlerResolver(resolver);
+            XmlReaderContext xmlReaderContext = xbdr.createReaderContext(resource);
             BeanDefinitionParserDelegate bdpd = new BeanDefinitionParserDelegate(xmlReaderContext);
             return new org.springframework.beans.factory.xml.ParserContext(xmlReaderContext, bdpd);
         } catch (Exception e) {

Added: aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/SpringNamespaceHandler.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/SpringNamespaceHandler.java?rev=1716829&view=auto
==============================================================================
--- aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/SpringNamespaceHandler.java (added)
+++ aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/SpringNamespaceHandler.java Fri Nov 27 11:08:40 2015
@@ -0,0 +1,56 @@
+/**
+ *  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.aries.blueprint.spring;
+
+import org.apache.aries.blueprint.NamespaceHandler;
+import org.apache.aries.blueprint.ParserContext;
+import org.osgi.service.blueprint.reflect.ComponentMetadata;
+import org.osgi.service.blueprint.reflect.Metadata;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.config.BeanDefinitionHolder;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+public class SpringNamespaceHandler implements org.springframework.beans.factory.xml.NamespaceHandler {
+
+    private final NamespaceHandler handler;
+    private final ParserContext parserContext;
+
+    public SpringNamespaceHandler(ParserContext parserContext, NamespaceHandler handler) {
+        this.parserContext = parserContext;
+        this.handler = handler;
+    }
+
+    @Override
+    public void init() {
+    }
+
+    @Override
+    public BeanDefinition parse(Element element, org.springframework.beans.factory.xml.ParserContext parserContext) {
+        Metadata metadata = handler.parse(element, this.parserContext);
+        if (metadata instanceof ComponentMetadata) {
+            this.parserContext.getComponentDefinitionRegistry().registerComponentDefinition(
+                    (ComponentMetadata) metadata);
+        }
+        return null;
+    }
+
+    @Override
+    public BeanDefinitionHolder decorate(Node source, BeanDefinitionHolder definition, org.springframework.beans.factory.xml.ParserContext parserContext) {
+        return definition;
+    }
+}

Modified: aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/SpringNamespaceHandlerResolver.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/SpringNamespaceHandlerResolver.java?rev=1716829&r1=1716828&r2=1716829&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/SpringNamespaceHandlerResolver.java (original)
+++ aries/trunk/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/SpringNamespaceHandlerResolver.java Fri Nov 27 11:08:40 2015
@@ -38,6 +38,9 @@ public class SpringNamespaceHandlerResol
             if (handler instanceof BlueprintNamespaceHandler) {
                 return ((BlueprintNamespaceHandler) handler).getSpringHandler();
             }
+            else if (handler != null) {
+                return new SpringNamespaceHandler(parserContext, handler);
+            }
         } catch (ComponentDefinitionException e) {
             // Ignore
         }

Modified: aries/trunk/blueprint/pom.xml
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/pom.xml?rev=1716829&r1=1716828&r2=1716829&view=diff
==============================================================================
--- aries/trunk/blueprint/pom.xml (original)
+++ aries/trunk/blueprint/pom.xml Fri Nov 27 11:08:40 2015
@@ -56,6 +56,7 @@
         <module>blueprint-authz</module>
         <module>blueprint-testbundles</module>
         <module>blueprint-spring</module>
+        <module>blueprint-spring-extender</module>
         <module>blueprint-sample-annotation</module>
         <module>blueprint-sample-fragment</module>
         <module>blueprint-sample-war</module>