You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2008/02/10 20:32:51 UTC
svn commit: r620313 - in /incubator/abdera/java/trunk/spring/src:
main/java/org/apache/abdera/spring/ main/resources/META-INF/schemas/
test/java/org/apache/abdera/spring/ test/resources/org/apache/abdera/spring/
Author: jmsnell
Date: Sun Feb 10 11:32:50 2008
New Revision: 620313
URL: http://svn.apache.org/viewvc?rev=620313&view=rev
Log:
Per https://issues.apache.org/jira/browse/ABDERA-106
Added:
incubator/abdera/java/trunk/spring/src/test/java/org/apache/abdera/spring/ClassicProviderDefinitionParserTest.java
incubator/abdera/java/trunk/spring/src/test/resources/org/apache/abdera/spring/classicBeansDefinition.xml
Modified:
incubator/abdera/java/trunk/spring/src/main/java/org/apache/abdera/spring/DefaultProviderDefinitionParser.java
incubator/abdera/java/trunk/spring/src/main/resources/META-INF/schemas/abdera-spring.xsd
incubator/abdera/java/trunk/spring/src/test/java/org/apache/abdera/spring/TestSuite.java
incubator/abdera/java/trunk/spring/src/test/resources/org/apache/abdera/spring/beans.xml
Modified: incubator/abdera/java/trunk/spring/src/main/java/org/apache/abdera/spring/DefaultProviderDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/spring/src/main/java/org/apache/abdera/spring/DefaultProviderDefinitionParser.java?rev=620313&r1=620312&r2=620313&view=diff
==============================================================================
--- incubator/abdera/java/trunk/spring/src/main/java/org/apache/abdera/spring/DefaultProviderDefinitionParser.java (original)
+++ incubator/abdera/java/trunk/spring/src/main/java/org/apache/abdera/spring/DefaultProviderDefinitionParser.java Sun Feb 10 11:32:50 2008
@@ -29,6 +29,7 @@
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.ManagedList;
import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.util.StringUtils;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -47,8 +48,8 @@
@Override
@SuppressWarnings("unchecked")
- protected void mapElement(ParserContext ctx, BeanDefinitionBuilder bean, Element element, String name) {
- if (name.equals("workspaceManager")) {
+ protected void mapElement(ParserContext ctx, BeanDefinitionBuilder bean, Element element, String name) {
+ if (name.equals("workspaceManager")) {
setFirstChildAsProperty(element, ctx, bean, "workspaceManager");
} else if (name.equals("targetResolver")) {
setFirstChildAsProperty(element, ctx, bean, "targetResolver");
@@ -61,11 +62,14 @@
NodeList nodes = element.getChildNodes();
Object child = null;
if (element.hasAttribute("ref")) {
+ if (!StringUtils.hasText(element.getAttribute("ref"))) {
+ ctx.getReaderContext().error(name + " contains empty 'ref' attribute", element);
+ }
child = new RuntimeBeanReference(element.getAttribute("ref"));
- ((RuntimeBeanReference)child).setSource(ctx.extractSource(element));
+ ((RuntimeBeanReference)child).setSource(ctx.extractSource(element));
} else if (nodes != null) {
for (int i = 0; i < nodes.getLength(); i++) {
- Node n = nodes.item(i);
+ Node n = nodes.item(i);
if (n.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) {
Element childElement = (Element)n;
child = ctx.getDelegate().parsePropertySubElement(childElement, bean.getRawBeanDefinition());
@@ -77,9 +81,10 @@
}
bean.addPropertyValue("filters", filters);
} else if (name.equals("workspace")) {
- String id = getAndRegister(ctx, bean, element);
-
+ String id = getAndRegister(ctx, bean, element);
bean.addPropertyReference("workspaces", id);
+ } else if (name.equals("property")) {
+ ctx.getDelegate().parsePropertyElement(element, bean.getRawBeanDefinition());
}
}
Modified: incubator/abdera/java/trunk/spring/src/main/resources/META-INF/schemas/abdera-spring.xsd
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/spring/src/main/resources/META-INF/schemas/abdera-spring.xsd?rev=620313&r1=620312&r2=620313&view=diff
==============================================================================
--- incubator/abdera/java/trunk/spring/src/main/resources/META-INF/schemas/abdera-spring.xsd (original)
+++ incubator/abdera/java/trunk/spring/src/main/resources/META-INF/schemas/abdera-spring.xsd Sun Feb 10 11:32:50 2008
@@ -32,7 +32,8 @@
<xsd:complexContent>
<xsd:extension base="beans:identifiedType">
<xsd:sequence>
- <xsd:element name="workspace" type="xsd:anyType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="beans:property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="workspace" type="xsd:anyType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="workspaceManager" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="targetResolver" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="subjectResolver" type="xsd:anyType" minOccurs="0"/>
Added: incubator/abdera/java/trunk/spring/src/test/java/org/apache/abdera/spring/ClassicProviderDefinitionParserTest.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/spring/src/test/java/org/apache/abdera/spring/ClassicProviderDefinitionParserTest.java?rev=620313&view=auto
==============================================================================
--- incubator/abdera/java/trunk/spring/src/test/java/org/apache/abdera/spring/ClassicProviderDefinitionParserTest.java (added)
+++ incubator/abdera/java/trunk/spring/src/test/java/org/apache/abdera/spring/ClassicProviderDefinitionParserTest.java Sun Feb 10 11:32:50 2008
@@ -0,0 +1,10 @@
+package org.apache.abdera.spring;
+
+
+public class ClassicProviderDefinitionParserTest extends ProviderDefinitionParserTest {
+
+ @Override
+ protected String getConfigPath() {
+ return "/org/apache/abdera/spring/classicBeansDefinition.xml";
+ }
+}
Modified: incubator/abdera/java/trunk/spring/src/test/java/org/apache/abdera/spring/TestSuite.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/spring/src/test/java/org/apache/abdera/spring/TestSuite.java?rev=620313&r1=620312&r2=620313&view=diff
==============================================================================
--- incubator/abdera/java/trunk/spring/src/test/java/org/apache/abdera/spring/TestSuite.java (original)
+++ incubator/abdera/java/trunk/spring/src/test/java/org/apache/abdera/spring/TestSuite.java Sun Feb 10 11:32:50 2008
@@ -25,7 +25,7 @@
public static void main(String[] args) {
JUnitCore runner = new JUnitCore();
runner.addListener(new TextListener(System.out));
- runner.run(
- ProviderDefinitionParserTest.class);
+ runner.run(ProviderDefinitionParserTest.class);
+ runner.run(ClassicProviderDefinitionParserTest.class);
}
}
Modified: incubator/abdera/java/trunk/spring/src/test/resources/org/apache/abdera/spring/beans.xml
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/spring/src/test/resources/org/apache/abdera/spring/beans.xml?rev=620313&r1=620312&r2=620313&view=diff
==============================================================================
--- incubator/abdera/java/trunk/spring/src/test/resources/org/apache/abdera/spring/beans.xml (original)
+++ incubator/abdera/java/trunk/spring/src/test/resources/org/apache/abdera/spring/beans.xml Sun Feb 10 11:32:50 2008
@@ -8,10 +8,9 @@
<!-- Abdera -->
<a:provider>
-
<a:workspace title="Foo Workspace">
<!-- These are our collections -->
- <bean class="org.apache.abdera.spring.TestAdapter"/>
+ <bean class="org.apache.abdera.spring.TestAdapter"/>
<ref bean="referencedAdapter"/>
</a:workspace>
@@ -28,6 +27,7 @@
</a:filter>
<a:filter ref="referencedFilter"/>
</a:provider>
+
<bean id="referencedAdapter" class="org.apache.abdera.spring.TestAdapter"/>
<bean id="referencedFilter" class="org.apache.abdera.spring.DummyFilter"/>
Added: incubator/abdera/java/trunk/spring/src/test/resources/org/apache/abdera/spring/classicBeansDefinition.xml
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/spring/src/test/resources/org/apache/abdera/spring/classicBeansDefinition.xml?rev=620313&view=auto
==============================================================================
--- incubator/abdera/java/trunk/spring/src/test/resources/org/apache/abdera/spring/classicBeansDefinition.xml (added)
+++ incubator/abdera/java/trunk/spring/src/test/resources/org/apache/abdera/spring/classicBeansDefinition.xml Sun Feb 10 11:32:50 2008
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:a="http://abdera.apache.org"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+ http://abdera.apache.org http://abdera.apache.org/schemas/abdera-spring.xsd">
+
+ <!-- Abdera -->
+ <a:provider>
+ <property name="filters">
+ <list>
+ <ref bean="referencedFilter"/>
+ <bean class="org.apache.abdera.spring.DummyFilter"/>
+ </list>
+ </property>
+ <property name="workspaces">
+ <ref bean="simpleWorkspace"/>
+ </property>
+
+ <!-- It is not necessary to specify this, but we're testing it -->
+ <a:targetResolver>
+ <a:regexTargetResolver>
+ <a:collection>/atom/feed(\?[^#]*)?</a:collection>
+ <a:entry>/atom/feed/([^/#?]+)(\?[^#]*)?</a:entry>
+ <a:service>/atom(\?[^#]*)?</a:service>
+ </a:regexTargetResolver>
+ </a:targetResolver>
+ </a:provider>
+
+ <bean id="referencedAdapter" class="org.apache.abdera.spring.TestAdapter"/>
+ <bean id="referencedFilter" class="org.apache.abdera.spring.DummyFilter"/>
+
+ <bean id="simpleWorkspace" class="org.apache.abdera.protocol.server.impl.SimpleWorkspaceInfo">
+ <property name="title" value="Foo Workspace"/>
+ <property name="collections">
+ <list>
+ <bean class="org.apache.abdera.spring.TestAdapter"/>
+ <ref bean="referencedAdapter"/>
+ </list>
+ </property>
+ </bean>
+
+</beans>
\ No newline at end of file