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