Objective

The 6.4 release presents a handful of significant changes to LexEVS.  These changes will require the users of LexEVS 6.4.1 and earlier to migrate to a new client jar for the API, and possibly to adjust the way they query our REST services.  These changes are:

Migration Notes

LexEVS 6.5.0 refers not only to the LexEVS Java API code base, but also supporting and extended services for LexEVS.  This includes the CTS2 Framework, the LexEVS CTS2 REST service, the LexEVS Remote API, and the URI Resolver service. 


End User API Migration

LexEVS RMI Java client code will, in almost all cases, have to be updated to Java 8.
Users already working with 6.4.1 Remote Java API will need to update to 6.5.0 compatible client jars including: 
Manual Dependency Management
Updates:

You will also need to update your application-config-client.xml file. 

 

Moving your own code base to Java 8 will likely be necessary.  Upgrading to Java 8 can be affected by issues with bean construction and collection order.  These are not compile time issues and will manifest as run time exceptions.  We recommend you prepare accordingly by testing your code base by compiling in and running tests against Java 8.


Maven Dependency Management

A LexEVS remote client project provides pom file based access to all supported client jars.   Users of the pom in this project: https://github.com/lexevs/LexEVS_Distributed_Client.git can update versions of LexEVS and LexEVS remote client jar sets to 6.5.0.FINAL and 6.5.0 respectively.  We are moving our support model to providing client jars to the end user via maven style repositories based in this Nexus system:  https://ncimvn.nci.nih.gov/nexus/#welcome

Pom File Updates (Available on release of 6.5.0 in the distributed client repository) and working pom file example.

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>


    <properties>
        <forkMode>never</forkMode>
        <lexevs.version>6.5.0.FINAL</lexevs.version>
        <cagrid.version>1.3</cagrid.version>
        <lexevs.remote.version>6.5.0</lexevs.remote.version>
    </properties>


        <dependency>
            <groupId>lexevs</groupId>
            <artifactId>lexevs-remote-client</artifactId>
            <version>6.5.0</version>
        </dependency>
        <dependency>
            <groupId>lexevs</groupId>
            <artifactId>lexevsapi-beans</artifactId>
            <version>6.5.0</version>            
        </dependency>
        <dependency>
            <groupId>lexevs</groupId>
            <artifactId>LexEVSSecurity</artifactId>
            <version>6.5.0</version>            
        </dependency> 
         <dependency>
            <groupId>sdk</groupId>
            <artifactId>sdk-client-framework</artifactId>
            <version>6.5.0</version>
        </dependency>
        <dependency>
            <groupId>sdk</groupId>
            <artifactId>sdk-grid-remoting</artifactId>
            <version>6.5.0</version>           
        </dependency>
        <dependency>
            <groupId>sdk</groupId>
            <artifactId>sdk-security</artifactId>
            <version>6.5.0</version>         
        </dependency>


End User REST / Data Service Migration

LexEVS will be dropping support for the caCORE service model and the services that are part of this model.  These include the SOAP, GetXML, GetHTML and similar Query by Example (QBE) services that were provided by the inclusion of caCORE into LexEVS. Legacy Data Service users will have to transition to the CTS2 REST API.   The advantage is that CTS2 is a living, active project that supports JSON as well as XML as a return format.
    
Example:

 

While updating the query is straightforward, interpreting the results being returned is less so.  The legacy service returned XML that conformed to the caCORE model while the CTS2 returns XML that conforms to the LexEVS model.  To aid in conversion, a Mapping from caCORE REST data service results to CTS2 REST service results is provided:
DataServiceMapToCTS2.xlsx

 

Support

LexEVS will be maintaining dual servers for a period of time to allow people to migrate from earlier versions to 6.5.0. The date of the sunsetting of older versions has not been set and will depend on user feedback.  If you have any concerns, questions or comments please contact us at:

 NCIThesaurus@mail.nih.gov 

Server-side changes

This code base has been confirmed to support recent CBIIT tech stack updates including: