Anthony Goubard - 2007-09-28


XINS 2.1 has been released.

What's new since XINS 2.0:

Start the API with java -jar <api name>.war
* Improved generated specification in OpenDocument Format
* Include/exclude calling convention with ACLs
* New calling convention that maps SOAP request and response as the wsdl2api command mapping.
* Smaller generated build.xml
* Added possibility to include other runtime properties files
* The runtime property location can be a URL
* Swing Graphical User Interface
* New tools: emma, glean, webstart
* New target: javadoc-test-<api name>, javadoc-apis
* Bug fixes and small RFEs

Hope you will like this release.

Best regards,

Here are the full list of changes

* XINS/Java Server Framework:
  - Changed the way the XML requests are cached as it caused errors with
    Tomcat 5.5.


* XINS/Java Common Library:
  - Fixed the parameters were not propagated in the test form GUI if a check
    box or a combo box was used.
  - Changed e-mail from to
  - Null values are not allowed in PropertyReader. Setting a value to null
    should be consider the same as removing a value.

* XINS/Java Server Framework:
  - Changed e-mail from to
  - Fixed possible NullPointerException when errorCode != null as the function
    specification should be used only for successful results.
  - Fixed bug #1787022: API.getAPISpecification() returns null during bootstrap.

* XINS/Java Client Framework:
  - Changed e-mail from to

* Generation of the WSDL:
  - The default value for a date or a timestamp has a different format in
    XML Schema.

* Generation of the unit tests:
  - Fixed the environment file was not detected for the test forms.

* Generated build file:
  - Fixed: changing XINS version didn't regenerate a new build.xml.

* Build- and release-process:
  - Updated xins maven version to 2.1.

* Tools:
  - Updated the download of Glean to version 1.2.1.
  - Updated maven tools to point to xins 2.1.

* Installer:
  - Changed the script installer to make it more independant of the project
    location and the OS.

* Documentation:
  - Moved articles to the articles directory.
  - Added new article about the performance of XINS compare to other Web
    Services frameworks.
  - Added presentation of the features added in release 2.1.


* XINS/Java Common Library:
  - Cleaned code with PMD such as removed unused imports.
  - Fixed possible NullPointerException in PropertyReaderUtils.
  - Renamed getWARFile() method to getWarFile().
  - Cleaned code with CheckStyle such as fixed Javadoc.
  - Added @since XINS 2.1 for new methods and new classes.
  - Implemented RFE#1787031: New constructor for BootstrapException.
  - Added new method PropertyReaderUtils#getWithDefault to get a property
    value or the specified default value.
  - Added logs to the HTTPFileWatcher in case of I/O error.

* XINS/Java Server Framework:
  - Cleaned code with PMD such as removed unused imports.
  - Cleaned code with CheckStyle such as fixed Javadoc.
  - Added @since XINS 2.1 for new methods and new classes.

* XINS/Java Client Framework:
  - Cleaned code with PMD such as removed unused imports.

* Generation of the unit tests:
  - Fixed missing import for the Log4J properties.

* Build- and release-process:
  - Automatic update of the xins-docs/build.xml with the new version number
    when creating the release.

* Documentation:
  - Adapted README.html for this 2.1 release.
  - Removed the lists.html as the forms on this page did work. This page has
    been replaced with the mailman page.


* XINS/Java Server Framework:
  - The input parameters are cloned using another method than calling the
    clone method as the Map could be something else than ChainedMap.
  - If the CallingConvention#convertRequest throws an InvalidRequestException,
    the stack trace of the cause is printed.

* XINS/Java Common Library:
  - Added more help text for the command java -jar <api name>.war -help.
  - Temporary files created by the internal Servlet container should be deleted
    when stopped.

* Generation of server-side Java code:
  - Fixed add methods was generated for input data section element instead of
    list methods.

* Generation of specdocs:
  - Added xins-project description to the main specdocs index.html.

* Generated build file:
  - The clean target regenerates a fresh build.xml. This allows to append
    commands such as 'xins clean war-myapi'.
  - The clean-<api name> also removes the main build.xml and regenerates a
    fresh one.

* Tools:
  - Added Glean in the download-tools target.

* Build- and release-process:
  - Download JMX is needed to rebuild xins binaries.

* Libraries:
  - Upgraded Log4J to 1.2.15.
  - Upgraded docbook XSLT to 1.73.2.
  - Upgraded xins-docs/lib to FOP 0.94.

* Examples:
  - Fixed the org.xins.server.config property should be passed to the test
    target in the nbbuild.xml file.

* Documentation:
  - Added XINS 2.1 features to the user guide.
  - Added chapter about integration with other frameworks to the user guide.

* DTD:
  - Added possibility to have a description in the xins-project.xml.


* XINS/Java Server Framework:
  - Replaced the name of the cookie set in the front-end CC from SessionId
    to SessionID.
  - Applied patch of RFE #1634856: Make public methods in FunctionResult throw
  - Applied patch of RFE #1634899: Refactor server so transactions are logged
    in one place.
  - Fixed include of other runtime properties files.
  - Fixed loading remote runtime properties on Windows.

* XINS/Java Common Library:
  - Improved specification GUI and test form.
  - Added getDefault() method to ParameterSpec to get the specified default
    value of the parameter or attribute if any.
  - Added a regular expression log filter to the Console GUI.
  - Added new method getDescription() to Type and to the standard types.
  - Improved XML Viewer to print doctype declaration.
  - Specification GUI: no indentation if the meta function called is _WSDL.
  - Specification GUI: Name of the API displayed as header.
  - Specification GUI: Fixed meta function _CheckLinks instead of
  - TestFormPanel: Improved layout, default value displayed, background color
    if the value is invalid, and much more.
  - Added tool to test regular expression with the SpecGUI.
  - Do not output namespace for attributes in XML Element if already done.

* Generation of client-side Java code:
  - Fixed if the input data element contained another data element the 'add'
    method was not generated.

* Generation of the Java types:
  - Implemented getDescription() method for all defined types.

* Generation of web.xml:
  - Added a comment on where to apply Servlet filters. Servlet filters can be
    used for example for compression, authentication, encryption or auditing.

* Generated unit tests:
  - Added default Log4J configuration.

* Generated WebStart file:
  - Added more comments.
  - Added XSLT used to generate the WebStart file to the release.

* Generated build file:
  - Fixed error when generating WAR file for an API with categories.
  - Fixed incorrect directory specified for the javadoc-test-<api name> target.
  - Fixed the logdoc properties should be passed as parameters to <antcall>.

* Tools:
  - Added new tool "glean" that generates the Glean report for an API.
    More information about Glean at

* Tests:
  - Added test for the include of other runtime properties files.
  - Added test for the _xins-soap-map calling convention.
  - Added test for the ACL based on calling convention.

* Librairies:
  - Upgraded Commons HttpClient from 3.0.1 to 3.1.

* Examples:
  - Fixed the rest API did not compile.

* Documentation:
  - New front-end page for the web site.


* XINS/Java Common Library:
  - Implemented RFE #1771569: Implement equals/hashCode on
  - Added unit test for the FunctionResult class.
  - SimpleDateFormat is not thread-safe so any use of it should be
  - Changed ChainedMap to be cloneable and serializable.
  - The Element object uses ChainedMap for the attribute list instead of
    HashMap in order to have the attribute in the same order as the way they
    were set.
  - Implement equals and hashCode for Element.
  - Added support for the namespace prefix in Element.
  - Possibility to change the namespace prefix and URI for an Element.
  - Added possibility for the FileWatcher to monitor several files at once.
  - Added HTTPFileWatcher that monitors several URLs at once.
  - Added support in BeanUtils for method using 'is' or 'has' to return a
    boolean instead of 'get'.
  - Improved parsing of the arguments for java -jar <war file>.
  - Added graphical user interface to the Servlet container.
  - Changed the default logged pattern by moving NDC to after the log level.
  - Added graphical user interface for the specifications.
  - Added an XML syntax highlighting Swing component.
  - Added test form user interface.

* XINS/Java Server Framework:
  - SimpleDateFormat is not thread-safe so any use of it should be
  - Added _xins-soap-map calling convention that transforms the SOAP request
    as the wsdl-to-api command does. The output parameters and data section are
    also mapped to generated a SOAP XML tree.
  - Fixed incorrect transformation of output data element attributes in the
    SOAP calling convention.
  - ChainedMap is used instead of HashMap for the session properties and the
    input parameters in order to have them in the same order as the way they
    were set.
  - Added new runtime property org.xins.server.config.include which offer the
    possibility to include runtime properties files.
  - Added possibility to specified a URL for the runtime properties file.
  - Changed the default logged pattern by moving NDC to after the log level.
  - Fixed bug #1778917: Missing struct before member for output data element
    in the XML-RPC calling convention.

* XINS/Java Client Framework:
  - Overridden hashCode and equals in AbstractCAPICallRequest so that two
    similar requests are equals.

* Generated build file:
  - Passed the DTD reference to the antcall sub-targets.
  - -load-properties should be called before wsdl-to-api and xsd-to-api.
  - Fixed property conflict problem when targets of different APIs were called.
  - Fail if the runtime-properties or bootstrap-properties are missing while
    runtime properties or bootstrap properties are defined.
  - If impl.xml is changed the index.html of the specdocs need to be
  - Fixed chainedmapper is not supported as direct mapper for the Ant <copy>
    task with Ant 1.6.2.
  - Fixed missing api name for the client command.

* Generation of specification documentation:
  - Fixed error when a shared error code was defined in the examples.
  - inclusive-or and exclusive-or param combos should use 'or' to parameters.
  - Check that the name defined in the function file is the same as the name
    of the function.
  - The pattern type could be tested directly in the page using Javascript.

* Generation of the OpenDocument Format:
  - inclusive-or and exclusive-or param combos should use 'or' to parameters.

* Generation of the API from the WSDL:
  - Fixed invalid variable to create the error code file.
  - Fixed invalid call to a non-existing template.
  - The name of the element should be used for the element name and not the
    type name.

* Tools:
  - Added new tool "webstart" that generates the Web Start file (also named
    JNLP file) for an API.

* DTD:
  - Removed the patterntest element in the xins-projects.dtd as no longer used.


* XINS/Java Common Library:
  - Fixed null values were put in the Map when using the
    BeanUtils#getParameters method.
  - The ServletClassLoader can detect the xins-common.jar using the XINS_HOME
    environment variable if needed.
  - Added automatic detection of the WAR file in the HTTPServletStarter when
    not passed as parameter.
  - Added possibility to pass the ClassLoader mode to the HTTPServletStarter.
  - Added new Ant task similar to the <xslt /> task with the option to never
    overwrite the destination files.
  - Added possibility to handle several request at the same time in the
    internal Servlet container (multi-threaded).

* XINS/Java Server Framework:
  - Fixed the way the was loaded when no org.xins.server.config
    is set was incorrect.
  - Implement RFE #1624142: ACLs for calling conventions.
    /!\ The allow methods have a new argument (that can be null).
  - Added getName and setName methods in the calling convention classes.

* Generation of the opendoc:
  - Added colors to the examples.
  - Enlarged the example tables.
  - Added colors to the table headers.
  - Added the categories after the API description.
  - Use Courier New font for element names.
  - Added light gray borders to the tables.
  - Reduce the use of bold fonts.
  - Fixed missing uppercase for input and output section.
  - Fixed the description of the function, parameters and error was just the
    first sentence.
  - Fixed support for <em> element in descriptions.
  - Fixed the "4" appearing before closing an element example.

* Generated build file:
  - Added javadoc-test-<api name> to get the Javadoc of the unit tests.
  - Added possibility to execute the API using 'java -jar <api name>.war'
  - Replaced create-project.xslt and tools.xslt with build-create.xml and
    build-tools.xml as most of the code doesn't need to be dynamically
  - Added build-apis.xml which contains static content of the old generated
    build.xml. This result in the reduction of the size of the generated
  - Several bug fixes and optimalization during the refactoring.
  - The dependency libraries have been added to the classpath for the run and
    test targets.

* Generation of specification documentation:
  - Fixed multiple textarea when there are multiple input data elements.

* Documentation:
  - Changed <style /> in <xslt /> in the xins-docs/build.xml.

* Build- and release-process:
  - Fixed incorrect location of the icon for the Windows installer.

* Other:
  - Fixed the package list for XINS and log4j.
  - Added the package-list for JUnit.
  - Added more debug sources for the nbbuild.xml of the petstore.


* XINS/Java Common Library:
  - Implemented RFE #1654262: Implement equals(Object) on PropertyReader
    classes. Contribution from Ernst de Haan.
  - Added a BufferedReader to read from the socket input stream.

* XINS/Java Server Framework:
  - Implemented RFE #1631516: Log entry 3408 should specify value of fallback
  - Implemented RFE #1633455: Get all properties from the RuntimeProperties
  - Implemented RFE #1636219: Added file name to the logs when the thread
    stops. Contribution from Ernst de Haan.
  - Implemented RFE #1636219: Invalid XML-RPC request if namespace set.
  - Fixed bug #1371632: XML-RPC: 400 returned instead of XML-RPC fault.

* XINS/Java Client Framework:
  - If no data section, the _data parameter is not sent.
  - If no context is available, the _context parameter is not sent.

* Generation of server-side Java code:
  - Removed creation of _errorResult when the function has no input parameters
    and no input data section.
  - Removed creation of the parameter when the type is _text and is optional
    in checkOutputParameters() as not used.
  - Changed Request.equals() and Request.hashCode() to use in some cases
    equals() instead of ==.

* Generation of client-side Java code:
  - Fixed bug #1703483: CAPI javadoc doesn't mention Error Result Code

* Generated build file:
  - The build directory is deleted if the version of XINS has changed between
    two build.
  - Added new target javadoc-apis to generate the Javadoc for all APIs.
  - Clean target should also delete the generated WSDL file.

* Generation of specification documentation:
  - If no environment is specified for an API, the test form page is still
    generated and a text field is proposed to the user to fill the location
    of the API. The value is stored in a cookie.
  - Fixed incorrect CSS for specdocs.
  - Fixed some invalid XHTML.
  - Added a favicon.ico in the specdocs directories.
  - Fixed Bug #1576547: No warnings when resultcode is not referenced from
  - Added meta description for the generated HTML pages.
  - Added link to the favicon in the generated HTML pages.

* Tools:
  - Upgraded Maven pom to the new stable 2.0 release.
  - Added new target emma to execute the unit test coverage of an API using
    EMMA (

* Examples:
  - Fixed incorrect runtime property used to define the logdoc locale.

* Documentation:
  - Added primer.html to redirect to primers/primer.html.

* Build- and release-process:
  - Added NetBeans project files to CVS.
  - Added missing src/tools/dojo directory to the release.
  - Implemented RFE #1741660: building xins doesn't include Spring packages.

* DTD:
  - Added 2.1 DTDs.