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>