You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by rd...@apache.org on 2005/09/04 12:11:17 UTC
svn commit: r278569 - in /jakarta/commons/proper/betwixt/trunk/src:
java/org/apache/commons/betwixt/digester/
test/org/apache/commons/betwixt/dotbetwixt/
Author: rdonkin
Date: Sun Sep 4 03:11:08 2005
New Revision: 278569
URL: http://svn.apache.org/viewcvs?rev=278569&view=rev
Log:
Added test for force accessible on super class
Added:
jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/PrivateMethodsBean.java
Modified:
jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/digester/ElementRule.java
jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/MixedUpdatersBean.betwixt
jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/MixedUpdatersBean.java
jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/TestXmlToBean.java
Modified: jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/digester/ElementRule.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/digester/ElementRule.java?rev=278569&r1=278568&r2=278569&view=diff
==============================================================================
--- jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/digester/ElementRule.java (original)
+++ jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/digester/ElementRule.java Sun Sep 4 03:11:08 2005
@@ -253,7 +253,11 @@
PropertyDescriptor descriptor = getPropertyDescriptor(beanClass,
name);
- if (descriptor != null) {
+ if (descriptor == null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Cannot find property matching " + name);
+ }
+ } else {
configureProperty(elementDescriptor, descriptor,
updateMethodName, forceAccessible, beanClass);
Modified: jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/MixedUpdatersBean.betwixt
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/MixedUpdatersBean.betwixt?rev=278569&r1=278568&r2=278569&view=diff
==============================================================================
--- jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/MixedUpdatersBean.betwixt (original)
+++ jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/MixedUpdatersBean.betwixt Sun Sep 4 03:11:08 2005
@@ -28,6 +28,7 @@
<element name='private-items'>
<element name='private-item' property='privateItems' updater='addPrivateItem' forceAccessible='true'/>
</element>
+ <element name='private-super' property='superPrivate' updater='setSuperPrivate' forceAccessible='true'/>
<addDefaults/>
</element>
</info>
Modified: jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/MixedUpdatersBean.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/MixedUpdatersBean.java?rev=278569&r1=278568&r2=278569&view=diff
==============================================================================
--- jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/MixedUpdatersBean.java (original)
+++ jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/MixedUpdatersBean.java Sun Sep 4 03:11:08 2005
@@ -24,7 +24,7 @@
*
* @author Robert Burrell Donkin
*/
-public class MixedUpdatersBean {
+public class MixedUpdatersBean extends PrivateMethodsBean {
//-------------------------- Attributes
private String name;
Added: jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/PrivateMethodsBean.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/PrivateMethodsBean.java?rev=278569&view=auto
==============================================================================
--- jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/PrivateMethodsBean.java (added)
+++ jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/PrivateMethodsBean.java Sun Sep 4 03:11:08 2005
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed 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.commons.betwixt.dotbetwixt;
+
+public class PrivateMethodsBean {
+
+ public int privateField = 0;
+
+ public int getSuperPrivate() {
+ return privateField;
+ }
+
+ protected void setSuperPrivate(int privateField) {
+ this.privateField = privateField;
+ }
+
+
+}
Modified: jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/TestXmlToBean.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/TestXmlToBean.java?rev=278569&r1=278568&r2=278569&view=diff
==============================================================================
--- jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/TestXmlToBean.java (original)
+++ jakarta/commons/proper/betwixt/trunk/src/test/org/apache/commons/betwixt/dotbetwixt/TestXmlToBean.java Sun Sep 4 03:11:08 2005
@@ -23,6 +23,9 @@
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.apache.commons.betwixt.ElementDescriptor;
+import org.apache.commons.betwixt.XMLBeanInfo;
+import org.apache.commons.betwixt.XMLIntrospector;
import org.apache.commons.betwixt.io.BeanReader;
import org.apache.commons.betwixt.io.BeanWriter;
import org.apache.commons.betwixt.strategy.HyphenatedNameMapper;
@@ -49,6 +52,22 @@
//---------------------------------- Tests
+ public void testForceAccessibleSuper() throws Exception {
+ XMLIntrospector xmlIntrospector = new XMLIntrospector();
+ XMLBeanInfo xmlBeanInfo = xmlIntrospector.introspect(MixedUpdatersBean.class);
+ ElementDescriptor[] descriptors = xmlBeanInfo.getElementDescriptor().getElementDescriptors();
+ boolean propertyFound = false;
+ for (int i=0; i<descriptors.length ; i++) {
+ ElementDescriptor descriptor = descriptors[i];
+ if ("private-super".equals(descriptor.getLocalName())) {
+ propertyFound = true;
+ assertNotNull("Updater found", descriptor.getUpdater());
+ assertNotNull("Expression found", descriptor.getTextExpression());
+ }
+ }
+ assertTrue("Found inaccessible super methods", propertyFound);
+ }
+
public void testCustomUpdaters() throws Exception {
// might as well check writer whilst we're at it
MixedUpdatersBean bean = new MixedUpdatersBean("Lov");
@@ -59,6 +78,7 @@
bean.badItemAdder("Death");
bean.privatePropertyWorkaroundSetter("Private");
bean.getPrivateItems().add("private item 1");
+ bean.privateField = 100;
StringWriter out = new StringWriter();
out.write("<?xml version='1.0'?>");
@@ -71,7 +91,8 @@
+ "<items><item>White</item><item>Life</item></items>"
+ "<bad-items><bad-item>Black</bad-item><bad-item>Death</bad-item></bad-items>"
+ "<private-property>Private</private-property>"
- + "<private-items><private-item>private item 1</private-item></private-items>"
+ + "<private-items><private-item>private item 1</private-item></private-items>" +
+ "<private-super>100</private-super>"
+ "</mixed>";
xmlAssertIsomorphicContent(
@@ -102,6 +123,7 @@
List privateItems = bean.getPrivateItems();
assertEquals("Wrong number of private items", 1, privateItems.size());
//TODO can't assert contents - gets the right number of items, but each is null (badItems, too)
+ assertEquals("Private property accessed on super", 100, bean.privateField);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org