You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrf-commits@ws.apache.org by ip...@apache.org on 2005/10/17 20:38:12 UTC
svn commit: r325952 - in /webservices/wsrf/trunk/src:
examples/filesystem/src/java/example/filesystem/callback/CommentCallback.java
java/org/apache/ws/util/spring/SpringBeansXmlMergeTask.java
Author: ips
Date: Mon Oct 17 11:38:07 2005
New Revision: 325952
URL: http://svn.apache.org/viewcvs?rev=325952&view=rev
Log:
fixed bug
Modified:
webservices/wsrf/trunk/src/examples/filesystem/src/java/example/filesystem/callback/CommentCallback.java
webservices/wsrf/trunk/src/java/org/apache/ws/util/spring/SpringBeansXmlMergeTask.java
Modified: webservices/wsrf/trunk/src/examples/filesystem/src/java/example/filesystem/callback/CommentCallback.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/examples/filesystem/src/java/example/filesystem/callback/CommentCallback.java?rev=325952&r1=325951&r2=325952&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/examples/filesystem/src/java/example/filesystem/callback/CommentCallback.java (original)
+++ webservices/wsrf/trunk/src/examples/filesystem/src/java/example/filesystem/callback/CommentCallback.java Mon Oct 17 11:38:07 2005
@@ -5,6 +5,7 @@
import org.apache.ws.resource.properties.SetResourcePropertyCallback;
import org.apache.ws.resource.properties.impl.CallbackFailedException;
import org.apache.xmlbeans.XmlString;
+import org.apache.ws.resource.example.filesystem.CommentDocument;
import javax.xml.namespace.QName;
@@ -22,25 +23,38 @@
public void deleteProperty( QName propQName ) throws CallbackFailedException
{
- return; // no need to implement - Apollo will never call delete for a prop whose minOccurs != 0
+ m_fileSystem.setComment( null );
}
public void insertProperty( Object[] propElems ) throws CallbackFailedException
{
- // Comment prop has cardinality of 1, so passed array will always have exactly one element
+ // Comment prop has cardinality of 0..1, so passed array will always have exactly one element
XmlString xString = (XmlString) propElems[0];
m_fileSystem.setComment( xString.getStringValue() );
}
- public void updateProperty( Object[] prop ) throws CallbackFailedException
+ public void updateProperty( Object[] propElems ) throws CallbackFailedException
{
- insertProperty( prop );
+ insertProperty( propElems );
}
public ResourceProperty refreshProperty( ResourceProperty prop ) throws CallbackFailedException
{
- XmlString xString = (XmlString) prop.get( 0 );
- xString.setStringValue( m_fileSystem.getComment() );
+ String comment = m_fileSystem.getComment();
+ if ( comment != null )
+ {
+ if ( prop.isEmpty() )
+ {
+ CommentDocument commentDocXBean = CommentDocument.Factory.newInstance();
+ commentDocXBean.setComment( comment );
+ prop.add( commentDocXBean );
+ }
+ else
+ {
+ XmlString xString = (XmlString) prop.get( 0 );
+ xString.setStringValue( comment );
+ }
+ }
return prop;
}
}
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/util/spring/SpringBeansXmlMergeTask.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/util/spring/SpringBeansXmlMergeTask.java?rev=325952&r1=325951&r2=325952&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/util/spring/SpringBeansXmlMergeTask.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/util/spring/SpringBeansXmlMergeTask.java Mon Oct 17 11:38:07 2005
@@ -137,11 +137,11 @@
{
System.out.println( "Merging " + srcFile + " into target spring-beans document ..." );
Document srcDoc = parseSpringBeansXmlFile( srcFile );
- Element srcDocElem = srcDoc.getDocumentElement();
- NodeList beanNodeList = srcDocElem.getElementsByTagName( "bean" );
- for ( int i = 0; i < beanNodeList.getLength(); i++ )
+ Element srcBeansElem = srcDoc.getDocumentElement();
+ Element[] beanElems = getChildElementsByTagName( srcBeansElem, "bean" );
+ for ( int i = 0; i < beanElems.length; i++ )
{
- Element srcBeanElem = (Element) beanNodeList.item( i );
+ Element srcBeanElem = beanElems[i];
String srcBeanId = getBeanId( srcBeanElem );
Element existingBeanElem = getBeanElementById( targetBeansElem, srcBeanId );
Node importedSrcBeanElem = targetBeansElem.getOwnerDocument().importNode( srcBeanElem, true );
@@ -164,17 +164,31 @@
{
return null;
}
- NodeList beanNodeList = beansElem.getElementsByTagName( "bean" );
- for ( int i = 0; i < beanNodeList.getLength(); i++ )
+ Element[] beanElems = getChildElementsByTagName( beansElem, "bean" );
+ for ( int i = 0; i < beanElems.length; i++ )
{
- Element beanElem = (Element) beanNodeList.item( i );
- String aBeanId = getBeanId( beanElem );
- if ( beanId.equals( aBeanId ) )
+ Element beanElem = beanElems[i];
+ if ( beanId.equals( getBeanId( beanElem ) ) )
{
return beanElem;
}
}
return null;
+ }
+
+ private Element[] getChildElementsByTagName( Element parentElem, String name )
+ {
+ List matchingElems = new ArrayList();
+ NodeList childNodes = parentElem.getChildNodes();
+ for ( int i = 0; i < childNodes.getLength(); i++ )
+ {
+ Node node = childNodes.item( i );
+ if ( node.getNodeType() == Node.ELEMENT_NODE && node.getNodeName().equals( name ) )
+ {
+ matchingElems.add( node );
+ }
+ }
+ return (Element[]) matchingElems.toArray( new Element[matchingElems.size()] );
}
private String getBeanId( Element beanElem )