XINS 2.1 released

  • Hello,

    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.