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 2003/01/19 16:46:56 UTC

cvs commit: jakarta-commons/betwixt/xdocs tasks.xml navigation.xml todo.xml

rdonkin     2003/01/19 07:46:56

  Modified:    betwixt/xdocs navigation.xml
  Added:       betwixt/xdocs tasks.xml
  Removed:     betwixt/xdocs todo.xml
  Log:
  Maven links to a file named tasks.xml for it's task list. i've renamed the todo.xml document to task.xml so that it's linked correctly from the generated documentation.
  
  Revision  Changes    Path
  1.4       +1 -1      jakarta-commons/betwixt/xdocs/navigation.xml
  
  Index: navigation.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/betwixt/xdocs/navigation.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- navigation.xml	2 Jan 2003 11:44:32 -0000	1.3
  +++ navigation.xml	19 Jan 2003 15:46:56 -0000	1.4
  @@ -10,7 +10,7 @@
         <item name="FAQ"                     href="/faq.html"/>
         <item name="Detail"                  href="/overview.html"/>
         <item name="Community"               href="/community.html"/>
  -      <item name="To Do List"              href="/todo.html"/>
  +      <item name="To Do List"              href="/tasks.html"/>
         <item name="Powered By"              href="/powered.html"/>
       </menu>
     </body>
  
  
  
  1.1                  jakarta-commons/betwixt/xdocs/tasks.xml
  
  Index: tasks.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <document>
    <properties>
      <title>TODO</title>
      <author email="jstrachan@apache.org">James Strachan</author>
    </properties>
  
    <body>
      <section name="TODO list">
        <p>
          The following is a list of items that need to be completed in
          Betwixt.  Contributions are welcome! 
        </p>
      
      <subsection name="High priority"> 
        <ul>
          <li>
            BeanWriter is writing too sloppy (empty elements, etc). Fixing it in a clean way
            is almost impossible. 
            Probably a refactor is best anyway to have a less "sloppy" api.. 
          </li>
          <li>
            Get an overview of what .betwixt files should really do. 
            Especially more complicated examples will cause very strange and unexpected results.
          </li>
          <li>
              If an addFoo() method is found with no matching getFoos() then a warning should be generated.
  	</li>
          <li>
  		  Consider allowing the parsing of XML to order the properties/elements in the XMLBeanInfo
  		  so that when the XML is output again it follows the same XML ordering again.
  		  There is an example describing this 
  		  <a href="http://nagoya.apache.org/eyebrowse/ReadMsg?listName=commons-dev@jakarta.apache.org&amp;msgNo=8488">here</a>.
  		  For example we could add a feature to parse the DTD and order the XMLBeanInfo according to the order in the DTD.		  
  	</li>
          <li>
  		  Improved documentation! Improve package level documentation so that new developers can get up 
            to speed more quickly. Ensure all betwixt features have good user documentation. 
            More good code examples.
          </li>
          <li>
              Add support for IDREF's to BeanReader. At the moment, round tripping break when cycles exist.
          </li>
          <li>
             Add testcase for the BeanReader(SAXParser) and BeanReader(XMLReader). They should behave
             the same in all cases.
          </li>
          <li>
              <strong>Create test cases based on real xml examples.</strong>
              This should help to shake out any problems and help to find out how the design can be improved.
              These should also be used as a basis for improved documentation.
          </li>
          <li>
              <strong>Improve internal design.</strong>
              Betwixt is hard to understand and hard to create patches for.
              An improved internal design would help more people to contribute.
          </li>
          <li>
              <strong>Improve test coverage.</strong>
              Run test coverage tool and improve coverage of key functionality.
          </li>
          <li>
              <strong>Allow customization for update from .betwixt file</strong>
              Add updater attribute that allows the updater to be specified for an elements.
              This should also allow updaters to be ignored for certain properties.
          </li>
          <li>
              <strong>Add dynabeans support.</strong> 
              Dynabeans are a feature of <code>commons-beanutils</code> that allows data in non-beans to be
              wrapped into pseudo-beans. If betwixt supported dynabeans then you could do cool stuff like 
              SQL -&gt; DynaBeans -&gt; XML. Probably a good way to do this would be to ensure that all property
              intrspection is done by dyanbeans-aware methods of beanutils.
          </li>
          <li>
              <strong>Update RSS example application.</strong>
              The original betwixt documentation made use of a good example application based on RSS.
              Unfortunately, this no longer works since the build was updated to maven.
              The instructions and means of running are linked to the CVS version.
              New instructions - and probably movement of some of the code - is needed to support
              a release distribution. The example also needs some more work - better java docs and also
              more features.
          </li>
          <li>
              <strong>Review AbstractBeanWriter and SAXBeanWriter</strong>
              AbstractBeanWriter and SAXBeanWriter were written very quickly (to support functionality
              in maven). They need to be reviewed and properly documentated.
          </li>
         </ul>
      </subsection>
      
      <subsection name="Medium priority"> 
        <ul>
              <li>
                  <strong>Handle empty elements better.</strong> 
                  Add option not to write empty elements. This is required to correctly write some kinds of xml.
                  The RSS full round tripping will only work with this functionality.
              </li>
              <li>
                  <strong>Create design documentation</strong>
                  This will help people understand the betwixt design.
              </li>
              <li>
                  <strong>Add verification for all xml writing tests.</strong>
                  At the moment, most of the xml writing tests do not test the output fully.
                  Need to add comparisons against reference xml documents.
              </li>
              <li>
                  <strong>Improve mapping for swing components</strong>
                  Swing classes have lots and lots of properties. 
                  Java 1.4 does a better job of persistance than betwixt for class that have lots of properties.
              </li>
              <li>
                  <strong>Binary Data Elements</strong>
                  Some properties should not be treated as beans and therefore mapped to a element graph.
                  These should be converted to body text of binary data.
                  A mechanism similar to BeanUtils.ConvertUtils might work.
                  For example, if you have a colormodel that get's written (an array with a lot of 
                  numbers and an xml-element per array element) betwixt will spend ages converting
                  it bit by bit.
              </li>
              <li>
                  <strong>Improved Support For Interfaces</strong>
              </li>
              <li>
                  <strong>Customizable ID/IDREF Mapping</strong>
                  Add per element customization for ID/IDREF mappings.
                  Extra attributes will be added to .betwixt file that specify the ID/IDREF names.
              </li>
              <li>
                  <strong>Attribute-Or-Element Strategy</strong>
                  At the moment, betwixt allows only an all-or-nothing for the choice between mapping to an
                  attribute or an element. This should be replaced by a strategy interface which allows the
                  mapping to the customized.
              </li>
        </ul>
      </subsection>
      
      <subsection name="Low priority"> 
        <ul>
          <li>
  		  Create a W3C DOM implementation that acts as a facade on top of beans to allow beans to 
  		  be transformed in XSLT engines as XML.
  		</li>
          <li>
  		  Add support for custom class loaders. Probably this means adding a classloader property
                    to <code>XMLIntrospector</code> and then ensuring all class creation uses that. 
                    The digestion rules which create the <code>XMLBeanInfo</code> from <code>.betwixt</code>
                    files should use the <code>XMLBeanInfoDigester</code> classloader property which should
                    be set by the <code>XMLIntrospector</code>.
  		</li>
           <li>
                     Improve integration with digester. At the moment, bean reading is all or nothing. You 
                     either use betwixt to do everything or you use digester to specify rules. It'd be nice
                     to be able to mix and match.
                  </li>
          <li>
              Create utility methods in BeanWriter to write stuff like prologs and doctype definitions to the 
              stream.
          </li>
          <li>
              Create a funky image for the betwixt home page.
          </li>
          <li>
              <strong>Element ordering strategies</strong>
              The ordering of the elements for a bean which doesn't have a .betwixt file associated
              is fixed by the order of the properties in the BeanInfo. If the class doesn't have a
              custom BeanInfo class then this order is arbitrary. This is unfortunate since often xml
              elements need a definite and predicatable ordering. Pluggable element ordering strategies
              would order the elements according to some algorithm eg. alphabetic.
          </li>
         </ul>
      </subsection>
      
      <subsection name='Completed (Since 1.0-Alpha-1 Release)'>
          <ul>
              <li>
                  <strong>Created DTD for .betwixt files.</strong>
              </li>
          </ul>
      </subsection>
      </section>
    </body>
  </document>
  
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>