Paulex Yang wrote:
What I meant is the test cases may need to be written against API factory method instead of construct implementation classes directly via implementation specific constructor/class, and the compatibility tests like serialization tests are needed. I have no preference in where the implementation classes locate. :)
Look, in beans we have special (package-protected) entities that are responsible for handling all persistence-related problems. If we like to test these non-public entities we have two ways: write an implementation test that can call protected methods directly to check the desired behavior, or write an API test that will walk rather long code path - create an appropriate content, instantiate XMLEncoder and so on. In the last case our testing method is less accurate and flexible comparing to the first one. Moreover, the real persistent delegate issue can be hidden by bugs in complex logic of XMLEncoder. Regards, 2007/7/5, Yang Paulex <[EMAIL PROTECTED]>:
2007/7/5, Spark Shen <[EMAIL PROTECTED]>: > > 2007/7/5, Yang Paulex <[EMAIL PROTECTED]>: > > > > 2007/7/4, Alexei Zakharov <[EMAIL PROTECTED]>: > > > > > > Spark Chen wrote: > > > > > If no objection, I will go to implement those missing persistence > > > > > functionality. > > > > > > FYI we already have number of persistence delegates classes located in > > > org.apache.harmony.beans package, and FieldPersistenceDelegate is one > > > of them. > > > I agree to utilize existing implementation. But there are still others > missing. For example, java.util.Collection and its subclasses[1]. > > [1]http://issues.apache.org/jira/browse/HARMONY-4327 > > It contains the algorithm that is very close to one you've > > > implemented in the patch for HARMONY-4321. So I don't think we should > > > add new FieldPersistenceDelegate, let's fix the existing one instead > > > (if it needs fixing). BTW, we also have a special folder > > > (src/test/java-internal/org/apache/harmony/beans) where tests for > > > persistence delegates are located. Shouldn't we create something like > > > FieldPersistenceDelegateTest there? > > > > > > Seems the tests in src/test/java-internal/org/apache/harmony/beans are > > implementation tests, all of which fail on RI with message like " > > java.lang.NoClassDefFoundError: > > org/apache/harmony/beans/ArrayPersistenceDelegate ". But I think the > > persistent delegate mechanism are very similar with serialization, on > > which > > we need to be compatible with other Java SE implementation, so it makes > > sense to make them the API tests which pass on RI. Did I miss something? > > > I agree to regard these test cases as API tests. And then these > persistenceDelegate implementations better be placed at > src/main/java/java/beans corresponding to test case layout. IMO, test case layout and implementation class layout are different thing. What I meant is the test cases may need to be written against API factory method instead of construct implementation classes directly via implementation specific constructor/class, and the compatibility tests like serialization tests are needed. I have no preference in where the implementation classes locate. :) Thanks, > > > > > > 2007/7/3, Tony Wu <[EMAIL PROTECTED]>: > > > > On 7/3/07, Spark Shen <[EMAIL PROTECTED]> wrote: > > > > > I find beans.XMLEncoder does not persist > > java.lang.reflect.Fieldproperly. > > > > > And I suspect there are more classes not properly handled. > > > > > > > > > > > > > Yes, I think so. > > > > > I have reported a JIRA: > > > > > https://issues.apache.org/jira/browse/HARMONY-4321 > > > > > > > > > > If no objection, I will go to implement those missing persistence > > > > > functionality. > > > > > > > > > > > > > please go head:)
-- Alexei Zakharov, Intel ESSD
