New in V8.5.5.Next Alpha

Feature and configuration management

Automatically add features in the Server Configuration editor

When you add a new element to the server configuration and the required feature is not already enabled, the Server Configuration editor will now, optionally, add the feature to the server for you.


Automatically enable features, new in 8.5.5.Next Alpha

Automatically update server.xml with an include from the server tools

The Create SSL Certificate, Create Collective Controller and Join Collective tools now provide the option to generate an include file from the server configuration for you. The tools then automatically add the new include to the server.xml.


Create SSL Certificate, new in 8.5.5.Next Alpha

Developer experience

Support for Eclipse Kepler

The developer tools now support Eclipse Kepler as well as Eclipse Juno. Eclipse Kepler improves performance so that the editors open, close, and switch much faster. Eclipse Kepler has also addressed a number of memory leaks so that long-running applications don’t run out of memory.


Kepler support, new in 8.5.5.Next Alpha

Developer tools download and installation

You can download and install WebSphere Application Server Liberty Profile V8.5.5.Next Alpha from within in the developer tools.


alphaibmdl2

Java EE Concurrency API

Configure and use server-managed executors, scheduled executors, thread factories, and the thread context service.  Thread context capture and propagation includes the classloader context, the Java EE metadata context, and the security context.

Here is some sample application code that uses the default managed scheduled executor to schedule a task that refreshes some cached data from the database every 15 minutes, running for the first time 5 minutes after being scheduled.

Example configuration of the feature in server.xml:

 <server>
  <featureManager>
    <feature>servlet-3.0</feature>
    <feature>concurrent-1.0</feature>
  </featureManager>
</server>

Example application code that uses a managed scheduled executor:

public class ConcurencyExampleServlet extends HttpServlet {
  @Resource(lookup = "java:comp/DefaultManagedScheduledExecutorService")
  ManagedScheduledExecutorService executor;

  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    Runnable task = new Runnable() {
      public void run() {
        try {
          DataSource ds = (DataSource) new InitialContext().lookup("java:comp/env/MyDataSourceRef");
          Connection con = ds.getConnection();
          try {
            // ... refresh cached info from database
          } finally {
            con.close();
          }
        } catch (Exception x) {
          x.printStackTrace(System.out);
        }
      }
    };
    executor.scheduleAtFixedRate(task, 5, 15, TimeUnit.MINUTES);
  }

JCA Outbound Resource Adapter support

Configure and use server-managed connection factories from outbound resource adapters and administered objects. Here is some sample application code that uses a JCA connection factory and administered objects.

Example configuration in server.xml:

<server>
  <featureManager>
    <feature>servlet-3.0</feature>
    <feature>jca-1.6</feature>
  </featureManager>

  <resourceAdapter id="myAdapter" location="C:/connectors/MyAdapter/MyResourceAdapter.rar"/>

  <connectionFactory jndiName="eis/connectionFactory1">
    <properties.myAdapter hostName="localhost" portNumber="1234"/>
  </connectionFactory>

  <adminObject jndiName="eis/interactionSpec1">
    <properties.myAdapter functionName="ADD" executionTimeout="1000"/>
  </adminObject>

  <adminObject jndiName="eis/interactionSpec2">
    <properties.myAdapter functionName="REMOVE" executionTimeout="500"/>
  </adminObject>
</server>

Example application code that uses a JCA connection factory and administered objects:

public class ExampleServlet extends HttpServlet {
  @Resource(lookup = "eis/connectionFactory1")
  ConnectionFactory connectionFactory;

  @Resource(lookup = "eis/interactionSpec1")
  InteractionSpec ispec_Add;

  @Resource(lookup = "eis/interactionSpec2")
  InteractionSpec ispec_Remove;

  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    try {
      MappedRecord record = connectionFactory.getRecordFactory().createMappedRecord("PARTS");
      record.put("PARTNUM", "A368006U");
      record.put("PRICE", 102.49f);
      record.put("SUPPLIER", "IBM");
      Connection con = connectionFactory.getConnection();
      try {
        Interaction interaction = con.createInteraction();
        interaction.execute(ispec_Add, record);
        interaction.close();
      } finally {
        con.close();
      }

WebSocket support

There is now partial support for both the WebSocket Protocol and the Java API for WebSockets. This includes connection initiation, message reading and writing, ping, pong, most annotations, and message decoding and encoding.

February update

Stories added in the February update

  • Create non-version specific server and runtime type ID for Liberty server
  • Provide RESTHandler framework
  • Default change: error on misconfigured JPA data source rather than ignoring
  • Loose config support for OSGi applications in tools
  • Support relaxed rules for session interfaces
  • Schema needs to support an unknown nested child element
  • Add internal libraries and custom SSL Trust Manager to enable Remote Server Connectivity
  • WebSockets: Remove restrictions on onOpen, on Close and onMessage methods
  • WebSockets: Support Session.getOpenSessions
  • Complete JCA 1.6 support
  • WDT in-workspace installer to discover and install optional features from the WDT update site
  • Need option to remove WS-Security policy from service/client WSDL

Defects (bugs) fixed in the February update

  • @ConfigProperty for a Boolean valued field, has the value of the type element as String.class
  • Cannot enable timedOperations report dynamically
  • Exception during createResource of a ResourceFactory resulting in null being returned to the application
  • Bus Name should be ignored for messaging flows within liberty server
  • Invalid Export-Package header in com.ibm.ws.javaee.jsf.tld.2.0 jar and com.ibm.ws.javaee.jsp.tld.2.2 jar
  • Utility jar class not found when referenced by OSGi Web Bundle in loose config mode
  • NPE from security collaborator when using WAB with cdi feature
  • websocket sample code can not work on latest Liberty build
  • OSGi RegionManager increases memory by 1.4 MB by loading MBeans during startup
  • ClassLoadingService can try to create the same gateway bundle on two threads concurrently and BOOM!
  • lWAS:SVT: JSF can not find WebSockets classes when destroying the context.
  • New servlet added to a war within an ear through the tools fails to load
  • Unable to generate Web service client of Liberty project from Services view

Plus another ~330 minor defects too.

7 Comments on "New in V8.5.5.Next Alpha (February update)"

  1. I’m using websphere application server 8.5.5.5 release. Is there websocket support in this version (not liberty profile).

    • No – only the Liberty profile has WebSocket support in v8.5.5.5. We have stated our intent to deliver full Java EE 7 capabilities (including WebSockets) in the WebSphere Application Server full profile but we have not announced when this support will be released.

  2. Hi,

    Any ideas if and when the concurrency feature concurrent-1.0 will be included in an upcoming official release of Websphere Liberty profile?

  3. Hello, about Java EE Concurrency API

    in wlp-developers-runtime-2013.11.jar and wlp-developers-extended-2013.11.jar

    there is no definitions about javax.enterprise.concurrent package.

    Not in ./dev and ./lib folder

    in ./lib there is some ibm stuff (Implementation), which relies on API, but no API package.

    How can i use new functionality?

    by the way in 8.5.5.1 there is similiar problem, declared ManagedExecutorService, even in infocenter, but no declarations in .jar

    thank you for the answer.

    • Hi Yan, the missing API package is a bug in the alpha driver- thank you
      for pointing it out! We will look into getting it corrected.
      Regarding
      8.5.5.1, it is correct to exclude the Java EE Concurrency API because
      8.5.5.1 does not implement that specification, and provides only a Java
      SE ExecutorService, which is managed by the app server.

Join The Discussion

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