# JiBX: Contributing

JiBX Basics
Overview
Flexibility
Performance
Clean code
News and Status
User Comments
Sponsors
Bugs
Getting Started
Binding Tutorial
A basic binding
Binding extras
Structure mapping
Collections
Using mappings
Advanced binding
Method hooks
Custom code
Binding Compiler
Binding on Load
Runtime
JiBX Extras
Building JiBX
Schema Compatibility
Mailing Lists
FAQ
Contributing
License
Binding Definition
Definition details
Definition contexts
Conversions
XML summary
<binding> element
<include> element
<format> element
<namespace> element
<mapping> element
<value> element
<structure> element
<collection> element
Attribute groups
Usage API
Runtime JavaDocs
Subprojects
Generator Tools
JibxSoap
Xsd2Jibx

### Areas for extension

Current plans for the JiBX 1.X series call for a 1.2 release which will integrate stable versions of the Xsd2Jibx and Generator Tools subprojects into the JiBX distribution. JiBX 2.0, featuring a rewritten code generator and improvements to the runtime design, is just getting started. For both 1.2 and 2.0 the work involved requires in-depth knowledge of the code and is not something where new developers are likely to be able to become directly involved.

Even so, there are several areas where interested developers can make important contributions to the JiBX project:

- Clean up the Ant task code. This currently uses some deprecated Ant methods, and doesn't support all the options you'd expect in terms of structuring the file sets.
- Build a GUI Wizard front-end for the binding generator. The binding generator is undergoing some major enhancements in preparation for the 1.2 release, including the addition of an XML configuration file for control information (replacing the lengthly list of command line parameters now in use). A Wizard could initialize settings from an existing configuration file, then save the file and pass it to the actual binding generator code when the user is done making their choices.
- Provide an adapter for JiBX to be used with Spring (or other favorite IoC framework).
- Set up JUnit tests that complement or replace many of the blackbox test cases in the /build/test tree of the distribution, using the bind-on-load approach so class file don't need to be modified on the disk. Testing error conditions in bindings would be especially useful, since the current tests are all designed to compile and execute correctly.

In the future, another interesting project will be integrating XML Binary Infoset representation (XBIS) support into JiBX for extremely fast document transfer. One preliminary step in this direction is extending XBIS with an XMLPull encoder and decoder, so that's another related project that someone could take on.

If you're interested in working in any of these areas (or have your own ideas for extending JiBX) check first on the jibx-dev email list to see if anyone else is already working in the same area.

### Contributor license agreement

If you're interested in becoming an active part of the JiBX team you'll need to fill out and return the Contributor License Agreement, below. It's not necessary for developers who are only contributing patches or bug fixes to fill out this agreement, but you'll be asked to state your acceptance of the agreement with respect to any code you submit.

JiBX committers, please complete this Agreement and mail it to The JiBX Project, 6 Ocean Road, Paraparaumu Beach 6010, Wellington, New Zealand. Please read this document carefully before signing, and keep a copy of the signed agreement for your records.

If you have any questions, please contact Dennis Sosnoski.

---------------- cut here ----------------

The JiBX Project

Contributor License Agreement

Thank you for your interest in The JiBX Project (the "Project"). In order to clarify the intellectual property license granted with contributions of software from any person or entity (the "Contributor"), the Project would like to have a Contributor License Agreement on file that has been signed by the Contributor, indicating agreement to the license terms below. This license is for your protection as a Contributor of software to the Project and does not change your right to use your own contributions for any other purpose.

If you have not already done so, please complete this Agreement and mail it to The JiBX Project, 6 Ocean Road, Paraparaumu Beach 6010, Wellington, New Zealand. Please read this document carefully before signing, and keep a copy of the signed agreement for your records.

`Full name:_______________________ E-Mail:__________________
Mailing Address:_________________ Telephone:_______________
_________________________________ Facsimile:_______________
_________________________________ Country:_________________`

You and the Project hereby accept and agree to the following terms and conditions:

1. Your "Contributions" means all of your past, present and future contributions of object code, source code and documentation to the Project, however submitted to the Project, excluding any submissions that are conspicuously marked or otherwise designated in writing by You as "Not a Contribution."

2. You hereby grant to the Project a non-exclusive, irrevocable, worldwide, no-charge, transferable copyright license to use, execute, prepare derivative works of, and distribute (internally and externally, in object code and, if included in your Contributions, source code form) your Contributions. Except for the rights granted to the Project in this paragraph, You reserve all right, title and interest in and to your Contributions.

3. You represent that you are legally entitled to grant the above license. If your employer(s) have rights to intellectual property that you create, you represent that you have received permission to make the Contributions on behalf of that employer, or that your employer has waived such rights for your Contributions to the Project.

4. You represent that, except as disclosed in your Contribution submission(s), each of your Contributions is your original creation. You represent that your Contribution submission(s) include complete details of any license or other restriction (including, but not limited to, related patents and trademarks) associated with any part of your Contribution(s) (including a copy of any applicable license agreement). You agree to notify the Project of any facts or circumstances of which you become aware that would make Your representations in this Agreement inaccurate in any respect.

5. Your Contributions are provided as-is, with all faults defects and errors, and without warranty of any kind (either express or implied) including, without limitation, any implied warranty of merchantability and fitness for a particular purpose and any warranty of non-infringement. The Project is not obligated to accept your Contributions, and even if your Contributions are accepted into the Project they may later be removed at any time and without any notice.

`Please sign: _____________________________ Date: __________`

---------------- cut here ----------------

This contributor license agreement is based on the license used for the Apache Jakarta project, published at http://jakarta.apache.org/site/agreement.html