Guidelines for XmlBlaster core developers


Getting started

Subscribe to the mailing list and discuss your ideas. And - very important - start hacking.

If you don't like the guidelines, discuss it on the mailing list, enhance them or change them if it makes sense and respects the other core developer feelings.

Coding/documentation should be in English.

Style Guide

Follow the common look and feel of xmlBlaster.
We don't use any tabs for indenting, indenting is done with 3 blanks per level. We know, this discussion is as old as mankind. But we choose for xmlBlaster this way.

Testing - for every feature, a test case.

We have a test suite for xmlBlaster, you find it under xmlBlaster/testsuite/src/java/org/xmlBlaster/test.
Please add a test case there for everything you code.

Because many people develop xmlBlaster, and you develop for the world, we need a full automatic test suite.

Like this, before committing changes, run the tests, and if the test suite shows 'green' we can sleep well.

Believe it or not, this is a MUCH more relaxed developing style. Imagine you make changes or enhancements in somebody else code. You dare much easier to do so, if you know the test suite reports if you broke some parts of the code you didn't understand or wasn't aware of.

Please minimize manual tests on the screen, nobody will run them. There is hopefully always a possibility to test your feature automatically with the test suite.

Steps for testing

You need to start Postgres or Oracle for persistent storage to run the tests, otherwise most tests will fail, see Postgres or Oracle.

   cd xmlBlaster
   build.sh delete
   build.sh all

   build.sh runTests
            

To get a HTML based test report please invoke after runTests:

   build.sh report
            

IMPORTANT NOTE: Currently the runTests task will run all tests in a bulk. This consumes on half the way all available threads on your system. This issue is currently on the way to be fixed. For the time being please test on UNIX/Linux like this (after compiling everything with build.sh all):

   cd xmlBlaster/testsuite/src/java/org/xmlBlaster/test
   export CLASSPATH=../../../../../../lib/xmlBlaster.jar:../../../../../../lib/junit.jar
   test.sh
            

CHANGES

Please add a short note about your change to the xmlBlaster/CHANGES file.

Requirements

Here you see how the requirements are presented online.

In the directory xmlBlaster/doc/requirements there is one xml file for every xmlBlaster requirement.

Please take a copy of one of those, and note your feature in there. It takes you one minute but allows us to track exactly the state of xmlBlaster.

With XSL style sheets we will generate

  • A html table of supported features in xmlBlaster
  • A list of open topics, where developers can pick some and code it
  • A printable reference manual from xmlBlaster
  • And maybe some other nice with XSL generated output
We are lazy, and this approach is simple and can be done with any vi editor.

The requirement should have a pointer to the testsuite, where this requirement is enforced.

HOME