Download Liberty 17.0.0.1 Ask a question on Stack Overflow

What’s new in this release?

Liberty Updates

IBM Cloud Product Insights for Liberty

The new productInsights-1.0 feature adds the capability to register a Liberty server with a Bluemix IBM Cloud Product Insights service and submit usage metrics.
IBM Cloud Product Insights can be used to track product instances and report usage metrics, for Liberty as well as for other IBM products. Using Product Insights, you will be able to register all of these product instances in a single dashboard, simplifying management tasks.
See here for a full description of the value and use of the Product Insights Service.


ProductInsights

Dynamic Routing feature update

The dynamicRouting-1.0 feature, together with the Intelligent Management for Web Servers component, now supports routing to the same application in multiple collectives. Previously, dynamic routing could route to multiple collectives only if all applications were unique to each collective. With this update, Intelligent Management for Web Servers will find all servers in all collectives that can service a particular request, and load balance requests across all of the server instances.

The dynamicRouting-1.0 feature and the Intelligent Management for Web Servers component now support the creation of routing rules to restrict the set of servers that will serve a request. For example, if the same application is installed on clusterA and clusterB in a collective, a set of routing rules could direct all requests where query parameter test = true to clusterB, and all other requests to clusterA.
Routing rules can also be used to configure failover. For example, a routing rule could be specified to load balance all requests for an application to a server in collective1, unless no servers with that application are available in collective1, in which case requests for that application would be routed to servers in collective2.
To take advantage of these new features, you must use Web Server Plug-ins for IBM WebSphere Application Server version 9.0.0.3 or greater.

API Discovery Feature

Public API Discovery

We have introduced two new endpoints, /api/explorer and /api/docs, both of which can accessed with either HTTP or HTTPS, and without any authentication. This means that consumers of your APIs can easily access the Swagger docs and “try out” the endpoints without setting up SSL or being included in the basic registry. These endpoints are enabled by default and the “api” portion of the URL can be configured by using the new publicURL attribute, ie: <apiDiscovery publicURL="public/myAPI" />. For more information, check out Discovering REST API documentation on a Liberty server.

Customized master Swagger document and UI

You can now customize all aspects of the master Swagger document (ie: the Info element, host, basePath, scheme, etc). This change applies to the /docs endpoint as well as the /explorer endpoint, which means you can customize the title and description that appears in the UI. This customization can be done via a swagger snippet that you can point to from the new swaggerDefinition attribute, ie: <apiDiscovery swaggerDefinition="${server.config.dir}/custom/swaggerDef.yaml" />. We also have an optimization for single-application scenarios, where the singleton app will have its swagger doc (via annotations or pre-generated) become the “master doc” automatically.

The customization also extends to the explorer: users can now specify a CSS file that overrides the basic styling of the top of the explorer page, such as the logo and banner colour. For more information, check out Overwriting Swagger 2.0 document fields.

Collective Swagger UI inline and Collective API registry

The Collective Swagger UI has been updated to inline the APIs from all collective members, instead of grouping them by each member. This provides an “API first” view of the APIs in the collective. There is also a public and customizable version of the Collective UI and docs, at /api/collective/docs and /api/collective/explorer, working just like the single-server scenarios outline above.

We also have a new endpoint, /api/collective/registry, which lists all the APIs in the collective in a “service registry” format, where only the core information about the API /service is displayed (title, description, version, and hosts that support this service). Here’s an example:

{ 
   "services":[
      { 
         "service":"/airlines/booking",
         "title":"Booking REST APIs",
         "description":"A microservice exposing booking APIs for various airlines.",
         "version":"1.0.0",
         "hosts":[ 
            "vm001:9081",
            "vm002:9082"
         ]
      },
      { 
         "service":"/flight/status",
         "title":"Flight Status REST APIs",
         "description":"A microservice exposing flight status APIs for various airports.",
         "version":"1.0.1",
         "hosts":[ 
            "vm003:9085"
         ]
      },
      { 
         "service":"/tourism",
         "title":"Tourism REST APIs",
         "description":"A microservice exposing tourism information for various popular destinations.",
         "version":"2.0.0",
         "hosts":[ 
            "vm004:9443"
         ]
      }
   ]
}

Proxy support

The Swagger UI and the Swagger docs endpoints have been updated to take into consideration HTTP headers such as “host” and “referer” when building its URLs, to support Liberty instances behind a proxy. Previously the URLs would always point directly to the Liberty instance, which sometimes was in an internal IP address that could not be reached directly. Now, if there is a proxy in front of Liberty, that proxy URL is used.

For more information please check out Listing all public RESTful APIs in a collective.

Admin Center update

The Java Batch tool of the Admin Center (the adminCenter-1.0 feature) has been extended to allow you to stop and restart job instance executions. A new column in the Java Batch tool dashboard called “Actions” makes it easy for you to manage the Java Batch job instances, in addition to viewing their progress.


Java Batch Restart


Java Batch Stop 1


Java Batch Stop 2

Application bindings and extensions can now be specified in the server configuration

Traditionally in WebSphere some application specific configuration information is specified in various XML files inside the application. For example, to define a virtual host for a web application you would need to specify the value in the ibm-web-bnd.xml file inside the WAR file.

In Liberty 17.0.0.1, you can now specify these application binding and extension configurations in server.xml. You can still specify the configuration information inside the application, but any values specified in server.xml will take precedence.

Transport Security Feature

Superseding ssl-1.0, the transportSecurity-1.0 feature decouples enabling the transport security from the implied protocol. The ssl-1.0 feature does not control the enabled transport layer protocols (that is controlled by the JVM security settings), but the name had been interpreted by some to imply the SSL protocol version. As with all features, ssl-1.0 will not be removed, but the new transportSecurity-1.0 feature supersedes ssl-1.0 and will contain new capabilities, such as outbound SSL configuration.

You will now be able to call out a global default for outbound SSL, which no longer has to be shared with the default inbound SSL setting. This will allow you to set the outbound default globally rather then having to specify the SSL setting for each component.

Logstash Collector updates

In the garbage collection events for logstashCollector-1.0 , we have added a new field: maxHeap. The maxHeap field indicates the maximum heap size that the JVM allows. The Liberty memory dashboard for Kibana 4 has been updated to show the maxHeap value in the liberty_gcHeap graph.

You can use tags to identify your log records using any strings. For example, use payroll and newyork to identify log records from a server in New York that is running the payroll application. You can filter these keywords from Kibana.

isoDateFormat

  • A new Logging attribute isoDateFormat=true/false has been added for the server configuration. It allows you to configure the Liberty server to write dates in logs/trace/FFDC in ISO-8601 format.
  • A new option --isoDateFormat has been added for the binaryLogging command. You can now view the logs with the dates in ISO-8601 format.

  • This gives you the ability to change the format of the dates written in the Liberty logs/trace/FFDC between the system locale and the standard ISO-8601 formats. It enables you to customize the date and time format in the Liberty logs, to your liking of standard ISO-8601 format or the locale format set by the system.

Kernel Updates

A new “pause” command has been added to the server script, and a new “PAUSE” z/OS operator console command has been added that allows WebSphere Application Server Liberty profile users to pause the HTTP endpoints of a running server. In addition to being able to pause and resume all of the server’s HTTP endpoints at once, there is an additional option to target individual endpoints to pause and resume.

Particularly on the z/OS platform, users want to have the ability to temporarily suspend traffic to a specific server without necessarily stopping it. One example is when a server loses connectivity to a back-end database, you may want to shut down incoming traffic to the server so that the web tier in front of it can route to a different system where the database connectivity is still working. You could investigate the loss of connectivity and resume the endpoint when the problem is resolved.

WebSphere Developer Tools

There have been a number of bug fixes.

Download Liberty 17.0.0.1 Ask a question on Stack Overflow

Migration Toolkit updates

The Migration Toolkit for Application Binaries (binary scanner) continues to be enhanced in order to assist application developers and administrators, even outside the scope of a migration, making it easier to evaluate your applications and fine tune them. Both the Eclipse-based source scanner and binary scanner contain bug fixes also.

The Application Evaluation Report now includes a section for each application with details on the technologies used and provides a summary with the right-fit IBM platforms for each application. This makes it easier to scan multiple applications at once and quickly determine where the applications can be deployed.

The Application Inventory Report now includes a performance considerations section for each application. The tool detects the following issues:

  • Archives without a metadata-complete attribute set to true
  • Web modules that contain excessive class files
  • Web modules that contain excessive static resources

The new --sharedLibraries option for the Application Inventory Report provides a way to include external dependencies in the application scan. The specified shared libraries are also scanned for dependencies on application classes, which can cause deployment problems.

Finally, the --format=txt option is deprecated. Check out the --format=json support instead, providing a way to do easy data analysis.

Get the Eclipse-based tools! Get the command-line tool!

Join The Discussion

Your email address will not be published. Required fields are marked *